方法一:uboot 和 Linux 内核的编译,烧写到系统,打开 wiki:
http://wiki.friendlyarm.com/wiki/index.php/NanoPC-T3_Plus/zh
下载系统: s5p6818-eflasher-20180811-friendlycore-arm64.img.zip
用 win32diskimager 烧写到 sd 卡.
1,安装 aarch64-linux-gcc
git clone https://github.com/friendlyarm/prebuilts.git
sudo mkdir -p /opt/FriendlyARM/toolchain
sudo tar xf prebuilts/gcc-x64/aarch64-cortexa53-linux-gnu-6.4.tar.xz -C
/opt/FriendlyARM/toolchain/
然后将编译器的路径加入到 PATH 中,用 vi 编辑 vi ~/.bashrc,在末尾加入以
下内容:
export PATH=/opt/FriendlyARM/toolchain/6.4-aarch64/bin:$PATH
export GCC_COLORS=auto
执行 . ~/.bashrc
aarch64-linux-gcc -v(检查是否已经装好)
2,下载 uboot 和内核代码
修改部分: uboot
cd uboot
Vim board/s5p6818/nanopi3/lcds.c
126 行加入了我们的 lcd 结构体,并写入参数,此参数大小参考 lcd 手册。
526 行的结构体中加入我们的 lcd 结构体。
Vim board/s5p6818/nanopi3/onewire.c
288 行改为识别我们的 lcd id 号。
修改部分:kernel
cd linux
Vim drivers/gpu/drm/panel/panel-friendlayarm.c
加入我们的结构体 struct lcd-desc wxga_ej080na050b
3,编译 uboot(见 wiki),生成 fip-nonsecure.img
git clone https://github.com/friendlyarm/u-boot.git
cd u-boot
git checkout nanopi2-v2016.01
make s5p6818_nanopi3_defconfig
make CROSS_COMPILE=aarch64-linux-
Linux.4.4.y u-boot编译遇到问题:
1.openssl/ssl.h这里是库文件缺失,执行命令
$ sudo apt-get install libssl-dev
2./bin/sh: 1:dtc:not found 缺dtc工具,执行命令
$ sudo apt-get install device-tree-compiler
3.dtc: invalidoption – ‘i’ 这里是dtc工具有问题,执行以下命令
$sudo wget -c
https://raw.github.com/RobertCNelson/tools/master/pkgs/dtc.sh
$ sudo chmod 777 dtc.sh
$ ./dtc.sh
4,烧写 uboot:
(1) 挂载 u 盘 ,sudo umount /media/tangtao/uboot
Sudo umount /medai/tangtao/rootfs
Sudo umount /media/tangtao/Friendlyarm
(2) 烧写 fip-nonsecure.img
sudo dd if=fip-nonsecure.img of=/dev/sdb bs=512 seek=3841
此处可以 cd /dev/看一下来确定 of=
5,编译 kernel,生成 Image 和 s5p6818-nanopi3-*dtb
git clone https://github.com/friendlyarm/linux.git -b nanopi2-v4.4.y –
depth
cd linux
touch .scmversion
make ARCH=arm64 nanopi3_linux_defconfig
make ARCH=arm64
6 烧写 Image 和 s5p6818-nanopi3-*dtb
(1) 重新挂载 u 盘
(2) sudo cp arch/arm64/boot/Image /media/tangtao/boot/ -rfva
(3) sudo cp arch/arm64/boot/dts/nexell/s5p6818-nanopi3-*dtb
/media/tangtao/boot/ -rfva
(4) sudo umount /media/tangtao/boot
sudo umount /media/tangtao/rootfs
sudo umount /media/tangtao/Friendlyarm
7,下载 debian_nanopi2
git clone https://github.com/friendlyarm/debian_nanopi2.git
cd debian_nanopi2
挂载 u 盘
(1) 把你的开机界面图片 logo.bmp 替换掉
sudo cp /home/tangtao/logo.bmp /media/tangtao/boot/logo.bmp
(2) 替换掉 debian_nanopi2 下的 boot 文件。
sudo cp /media/tangtao/boot/* /home/tangtao/debian_nanopi2/boot -
rfva
(3)编译:
sudo ./tools/make_ext4fs -s -l 67108864 -a root -L boot boot.img boot
8,替换 Friendlyarm/core-qte-arm64 下的 fip-nonsecure.img 和 boot.img
sudo cp boot.img /media/tangtao/Friendlayarm/core-qte-arm64/ -rfva
cd uboot
sudo cp fip-nonsecure.img /media/tangtao/Friendlayarm/core-qte-arm64/
-rfva
sudo umount /media/tangtao/boot
sudo umount /media/tangtao/rootfs
sudo umount /media/tangtao/Friendlyarm
此后便可重新烧写系统了。
方法二 构造自己的量产系统
git clone https://github.com/friendlyarm/sd-fuse_nanopi3.git
cd sd-fuse_nanopi3
替换 prebuilt 下的 fip-nonsecure.img 为我们编译出来的 fip-nonsecue.img
sudo ./mkimage.sh eflasher
DEV=sudo losetup -f
sudo losetup D E V s 5 p 6818 − e f l a s h e r − {DEV} s5p6818-eflasher- DEVs5p6818−eflasher−(date +%Y%m%d).img
cd eflasher
替换里面的 fip-nonsecre.img 和 boot.img 为我们的 fip-nonsecure.img 和
boot.img
sudo ./mkimage.sh eflasher
DEV=sudo losetup -f
sudo losetup D E V s 5 p 6818 − e f l a s h e r − {DEV} s5p6818-eflasher- DEVs5p6818−eflasher−(date +%Y%m%d).img
上面的步骤已经生成了一个可启动的 EFlasher 系统映象,名为 s5p4418-
eflasher-sd8g-YYYYMMDD.img,但里面还没有可以烧写到 eMMC 的文件,下面的
命令我们将把一个 core-qte-arm64 系统放进去你可以把你们自已的系统映象放
进去代替下面命令中的 , 以达到量产自已的系统的目的:
sudo partprobe ${DEV}
sudo mkfs.vfat ${DEV}p1 -n FRIENDLYARM
sudo mkdir -p /mnt/fat
sudo mount -t vfat D E V p 1 / m n t / f a t s u d o w g e t − q O − h t t p : / / 112.124.9.243 / d v d f i l e s / S 5 P 6818 / i m a g e s − f o r − e f l a s h e r / c o r e − q t e − a r m 64 − i m a g e s . t g z ∣ t a r x v z − C / m n t / f a t 此 时 要 进 入 系 统 里 面 , 更 换 我 们 需 要 的 东 西 , f d i s k − l m y . i m g 挂 载 u b o o t S u d o m o u n t − o l o o p , o f f s e t = {DEV}p1 /mnt/fat sudo wget -qO- http://112.124.9.243/dvdfiles/ S5P6818/images-for-eflasher/core-qte-arm64-images.tgz | tar xvz -C /mnt/fat 此时要进入系统里面,更换我们需要的东西, fdisk -l my.img 挂载 uboot Sudo mount -o loop,offset= DEVp1/mnt/fatsudowget−qO−http://112.124.9.243/dvdfiles/S5P6818/images−for−eflasher/core−qte−arm64−images.tgz∣tarxvz−C/mnt/fat此时要进入系统里面,更换我们需要的东西,fdisk−lmy.img挂载ubootSudomount−oloop,offset=(8192*512) s5p…img /mnt
挂载 Friendlyarm
Cd /mnt/fs
修改里面的 boot.img,fip-nonsecure.img
sudo umount /mnt/fat
sudo losetup -d ${DEV}