임베디드 | 라즈베리파이 | ARM | 리눅스 | Qt | 딥러닝

임베디드/Sabre Lite +2

Sabre lite 우분투 설치하기


사브레 라이트로 서버 구축하기 앞서 가장 먼저 해야할 것은 OS 선정이다.

sabre lite 는 리눅스 기반의 우분투, yocto 등을 지원하며  WEC 2013 도 지원한다. 


가장 쉽게 설치하며 빠르게 시작할 수 있는 것은 역시 리눅스 계열일 것이다.




리눅스 커널 설치

sudo apt-get update

sudo apt-get install device-tree-compiler lzma


git clone https://github.com/RobertCNelson/armv7-multiplatform

 cd armv7-multiplatform/


git tree 다운
git checkout origin/v4.6.x -b tmp

build
./build_kernel.sh


11:17 시작  11:45 분 빌드 끝!


이렇게 커널이 컴파일된다.




root FILE 시스템 설치

wget -c https://rcn-ee.com/rootfs/eewiki/minfs/ubuntu-16.04-minimal-armhf-2016-06-06.tar.xz



tar xf ubuntu-16.04-minimal-armhf-2016-06-06.tar.xz




miscro SD 카드 셋팅


먼저 lsblk 등의 명령어로 삽입한 sd카드의 위치를 파악한다.

나의 경우 sdc

export DISK=/dev/sdc



sd카드의 파티션 테이블 삭제

sudo dd if=/dev/zero of=${DISK} bs=1M count=50



sd카드에 파티션 설정

갖고있는 설정프로그램의 버전 확인

sudo sfdisk --version


sfdisk <= 2.25.x 버전 보다 작으면 아래와 같이 입력


sudo sfdisk --unit M ${DISK} <<-__EOF__

1,48,0x83,*

,,,-

__EOF__


나의경우 2.20.1이었다


파티션 프로그램 역시 체크

sudo mkfs.ext4 -V


나의 경우

Using EXT2FS Library version 1.42.9


sd카드에 따라 아래와같이 설정

for: DISK=/dev/mmcblk0

sudo mkfs.ext2 -L boot ${DISK}p1

sudo mkfs.ext4 -L rootfs ${DISK}p2

  

for: DISK=/dev/sdX

sudo mkfs.ext2 -L boot ${DISK}1

sudo mkfs.ext4 -L rootfs ${DISK}2



나의 경우 아래것 sdc이므로 아래것 사용



마운트 포인트설정

sudo mkdir -p /media/boot/

sudo mkdir -p /media/rootfs/

   

for: DISK=/dev/sdX

sudo mount ${DISK}1 /media/boot/

sudo mount ${DISK}2 /media/rootfs/



~/6x_bootscript.txt 파일생성

echo "6x_bootscript -> uEnv.txt wrapper..."

if test -n $disk; then

setenv mmcdev $disk

setenv mmcpart 1

fi

load mmc ${mmcdev}:${mmcpart} ${loadaddr} uEnv.txt

env import -t ${loadaddr} ${filesize}

run uenvcmd



mkimage 사용 부트스크립트 생성

mkimage -A arm -O linux -T script -C none -a 0 -e 0 -n "wrapper" -d ./6x_bootscript.txt ./6x_bootscript



~/uEnv.txt 파일 생성

initrd_high=0xffffffff

fdt_high=0xffffffff

  

fdtfile=imx6q-sabrelite.dtb

  

console=ttymxc1,115200n8

optargs=console=tty0

video=

  

mmcroot=/dev/mmcblk0p2 ro

  

#This gets complex when both microSD & MMC media is present at bootup:

#microSD:

#mmcroot=/dev/mmcblk0p2 ro

#MMC:

#mmcroot=/dev/mmcblk1p2 ro

  

mmcrootfstype=ext4 rootwait fixrtc

  

loadkernel=load mmc ${mmcdev}:${mmcpart} 0x12000000 zImage

loadinitrd=load mmc ${mmcdev}:${mmcpart} 0x18080000 initrd.img; setenv initrd_size

loadfdt=load mmc ${mmcdev}:${mmcpart} 0x18000000 /dtbs/${fdtfile}

  

#zImage/initrd.img:

#boot_fdt=run loadkernel; run loadinitrd; run loadfdt

  

#zImage:

boot_fdt=run loadkernel; run loadfdt

  

mmcargs=setenv bootargs console=${console} ${optargs} root=${mmcroot} rootfstype=${mmcrootfstype} video=${video}

  

#zImage/initrd.img:

#uenvcmd=run boot_fdt; run mmcargs; bootz 0x12000000 0x18080000:${initrd_size} 0x18000000

  

#zImage:

uenvcmd=run boot_fdt; run mmcargs; bootz 0x12000000 - 0x18000000 


sudo cp -v ./6x_bootscript /media/boot/

sudo cp -v ./uEnv.txt /media/boot/


방금 만든 것 복사






아까 커널 빌드한후에

Script Complete

eewiki.net: [user@localhost:~$ export kernel_version=4.6.4-armv7-x4]

-----------------------------

이런 것이 나오는데 이 커널 버전을 다른데다 적어놓자

이제 빌드한 커널과, 부트시스템을 sd카드에 복사해보자

export kernel_version=4.6.4-armv7-x4



루트 파일 시스템복사

sudo tar xfvp ./*-*-*-armhf-*/armhf-rootfs-*.tar -C /media/rootfs/



sudo cp -v ./armv7-multiplatform/deploy/${kernel_version}.zImage /media/boot/zImage




위에 것은
https://eewiki.net/display/linuxonarm/i.MX6+SABRE+Lite#i.MX6SABRELite-CopyRootFileSystem
이 링크에 있는 내용인데
해보니 문제가 있다 (2016.07/17)
문제 : sd카드 파티션 용량과 번호가 잘못됨




그래서 그냥

https://boundarydevices.com/debian-jessie-images-for-i-mx6-boards/

만들어진 빌드 파일을 구워서 접속하였다.


우분투->debian 으로 변경설치함,









'임베디드 > Sabre Lite' 카테고리의 다른 글

sabre lite 다시 시작하기  (0) 2016.07.16