BeagleBone Black의 펌웨어 - Part5: SD 카드의 Ubuntu14를 다시 설치합니다.04.1 Windows 7에 연결

Windows7 환경의 Beagle Bone Black은 인터넷에 연결할 수 있도록 무선 LAN을 설정합니다.USB Gadget은 USB 이더넷 연결에 사용할 수 없습니다.g-ether 커널 모듈의 로드에 문제가 있는 것 같습니다.우선 내부 핵을 최신형으로 만들면 g-ether 모듈이 정상적으로 적재된다.

g-ether 설치 실패


Putty/USB 직렬 연결에서 콘솔을 엽니다.참조Beaglebone Black (BBB) Cross Compile USB Gadget 설정g-ether 모듈.우선 udhcpd를 설치합니다.
$ sudo apt-get install udhcpd
설정 스크립트를 다운로드합니다.
$ wget https://raw.githubusercontent.com/RobertCNelson/tools/master/scripts/beaglebone-black-g-ether-load.sh
$ chmod +x beaglebone-black-g-ether-load.sh
설정 스크립트를 실행하지만 'g_multi': No such device 및 오류가 표시되어 장애가 발생합니다.
$ sudo ./beaglebone-black-g-ether-load.sh
cpsw.0: 90:59:AF:58:32:D1
cpsw.1: 90:59:AF:58:32:D3
modprobe: ERROR: could not insert 'g_multi': No such device
Stopping very small Busybox based DHCP server: No /usr/sbin/udhcpd found running; none killed.
udhcpd.
Starting very small Busybox based DHCP server: Starting /usr/sbin/udhcpd...
udhcpd.
SIOCSIFADDR: No such device
usb0: ERROR while getting interface flags: No such device
SIOCSIFNETMASK: No such device

커널 모듈이 로드되지 않았습니다.


beaglebone-black-g-ether-load.sh에서 실행되는 핵 모듈의 불러오기를 디버깅합니다.
$ sudo modprobe g_ether -v
insmod /lib/modules/3.14.26-ti-r43/kernel/drivers/usb/gadget/g_ether.ko
modprobe: ERROR: could not insert 'g_ether': No such device
g_ether의 장치 드라이버를 찾을 수 없는 것 같지만find가 있습니다.
$ sudo find / -name 'g_ether.ko' -print
/lib/modules/3.14.26-ti-r43/kernel/drivers/usb/gadget/g_ether.ko
dmsg를 보면 g_ether 모듈이 kernel tainted 불러오지 않기 때문입니다.GPL 오염 표지가 세워져 있는 것 같아요.
$ sudo dmesg |tail
[  309.403366] g_ether: module_layout: kernel tainted.
[  309.403425] Disabling lock debugging due to kernel taint

최신 커널 설치

g_ether를 활성화하려면 커널 모듈의 구성이 필요합니다.참고Install Latest Kernel Image, 우선 내부 핵을 최신 버전으로 업데이트합니다.현재 커널의 버전을 확인합니다.
$ uname -a
Linux arm 3.14.26-ti-r43 #1 SMP PREEMPT Wed Dec 24 05:27:12 UTC 2014 armv7l armv7l armv7l GNU/Linux
최신 소스를 끓여라.
$ cd /opt/scripts/tools
$ git pull
remote: Counting objects: 59, done.
remote: Compressing objects: 100% (43/43), done.
remote: Total 59 (delta 45), reused 30 (delta 16)
Unpacking objects: 100% (59/59), done.
From https://github.com/RobertCNelson/boot-scripts
   7068eda..e6fd16e  master     -> origin/master
Updating 7068eda..e6fd16e
Fast-forward
 boot/am335x_evm.sh                                            | 15 ++++--
 boot/beagle_x15.sh                                            | 20 ++-----
 boot/omap5_uevm.sh                                            | 22 +++-----
 mods/wheezy-systemd-poweroff.diff                             | 22 ++++++++
 tools/developers/update_bootloader.sh                         | 87 +++++++++++++++++--------------
 tools/eMMC/bbb-eMMC-flasher-eewiki-ext4.sh                    |  8 +--
 tools/eMMC/beaglebone-black-make-microSD-flasher-from-eMMC.sh |  8 +--
 tools/eMMC/init-eMMC-flasher-v3.sh                            |  9 ++--
 tools/update_kernel.sh                                        |  9 ++--
 9 files changed, 110 insertions(+), 90 deletions(-)
 create mode 100644 mods/wheezy-systemd-poweroff.diff
커널 이미지를 만들고 다시 시작합니다.
$ sudo ./update_kernel.sh
...
Selecting previously unselected package ti-sgx-es8-modules-3.14.31-ti-r49.
(Reading database ... 22299 files and directories currently installed.)
Preparing to unpack .../ti-sgx-es8-modules-3.14.31-ti-r49_1trusty_armhf.deb ...
Unpacking ti-sgx-es8-modules-3.14.31-ti-r49 (1trusty) ...
Setting up ti-sgx-es8-modules-3.14.31-ti-r49 (1trusty) ...
update-initramfs: Generating /boot/initrd.img-3.14.31-ti-r49
$ sudo reboot
재부팅 후 커널이 업데이트됩니다.
$ uname -a
$ Linux arm 3.14.31-ti-r49 #1 SMP PREEMPT Sat Jan 31 14:17:42 UTC 2015 armv7l armv7l armv7l GNU/Linux
g_ether 모듈이 로드되었습니다.
$ lsmod
Module                  Size  Used by
ctr                     3277  1
ccm                     7172  1
usb_f_ecm               7901  1
g_ether                 1798  0
usb_f_rndis            17711  2 g_ether
u_ether                 9524  3 usb_f_ecm,usb_f_rndis,g_ether
libcomposite           38715  3 usb_f_ecm,usb_f_rndis,g_ether
arc4                    1602  2
rt2800usb              15756  0
rt2800lib              70568  1 rt2800usb
rt2x00usb               8125  1 rt2800usb
rt2x00lib              35077  3 rt2x00usb,rt2800lib,rt2800usb
mac80211              439647  3 rt2x00lib,rt2x00usb,rt2800lib
cfg80211              380240  2 mac80211,rt2x00lib
crc_ccitt               1110  1 rt2800lib
rfkill                 14659  2 cfg80211
musb_dsps               8369  0
musb_hdrc              76236  1 musb_dsps
pvrsrvkm              183463  0
c_can_platform          5927  0
c_can                   9400  1 c_can_platform
can_dev                 7430  1 c_can
musb_am335x             1075  0
g_ether 모듈을 불러올 때 usb0 네트워크를 만들었습니다.
$ ip addr show usb0
5: usb0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP group default qlen 1000
    link/ether ee:2c:31:30:53:23 brd ff:ff:ff:ff:ff:ff
    inet 192.168.7.2/30 brd 192.168.7.3 scope global usb0
       valid_lft forever preferred_lft forever
    inet6 fe80::ec2c:31ff:fe30:5323/64 scope link
       valid_lft forever preferred_lft forever

UV-Ethernet 연결 확인


네트워크 공유 설정


비글본블랙과 윈도 7이 USB 연결을 하면 리눅스 USB 이더넷/RNDIS Gadget 네트워크가 만들어진다.속성을 열고 TCP/IPv4 설정을 DHCP로 변경합니다.

인터넷 연결을 공유하기 위해 무선 네트워크 연결 속성을 엽니다.공유 탭의 USB Gadget 및 네트워크 공유를 허용합니다.

SSH 연결


Putty에서 BeagleBone Black까지의 192.168.7.2 연결 SSH.
Using username "ubuntu".
Ubuntu 14.04.1 LTS

rcn-ee.net console Ubuntu Image 2015-01-06

Support/FAQ: http://elinux.org/BeagleBoardUbuntu

default username:password is [ubuntu:temppwd]

[email protected]'s password:
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.14.31-ti-r49 armv7l)
기본 게이트웨이를 설정하여 라우팅을 확인합니다.
$ sudo route add default gw 192.168.7.1
$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.7.1     0.0.0.0         UG    0      0        0 usb0
192.168.7.0     0.0.0.0         255.255.255.252 U     0      0        0 usb0
Beagle Bone Black에서 Windows 7의 USB 이더넷을 통해 연결하면 이름과 인터넷 연결을 해결할 수 있다.
$ ping -c 3 www.yahoo.co.jp
PING www.g.yahoo.co.jp (183.79.197.250) 56(84) bytes of data.
64 bytes from 183.79.197.250: icmp_seq=1 ttl=53 time=33.1 ms

좋은 웹페이지 즐겨찾기