我是參考以下的帖子完成TF卡的製作的,非常感謝暈哥的帖子和論壇!
https://whycan.cn/t_561.html
https://whycan.cn/t_547.html
注意!所有操作均在root權限下執行!
注意!所有操作均在root權限下執行!
注意!所有操作均在root權限下執行!
第一步 準備工作
首先下載製作荔枝派zero TF卡需要用的文件。
1、u-boot:https://github.com/Lichee-Pi/u-boot/archive/v3s-current.zip
2、Linux kernel:https://github.com/Lichee-Pi/linux/archive/zero-4.10.y.zip
3、Buildroot:https://buildroot.org/downloads/buildroot-2017.08.1.tar.gz
還有一些編譯器gcc、g++、arm-linux-gnueabihf-gcc之類的,都需要apt-get安裝。
第二步 編譯u-boot、Linux kernel和Buildroot源碼
一、u-boot編譯
1、在解壓好的u-boot文件夾下輸入以下命令(這個是默認設置):
現修改u-boot的一些配置,讓他能夠從TF卡啓動:
修改u-boot源碼文件夾下的 include/configs/sun8i.h:
添加如下代碼:
#define CONFIG_BOOTCOMMAND "setenv bootm_boot_mode sec; " \
"load mmc 0:1 0x41000000 zImage; " \
"load mmc 0:1 0x41800000 sun8i-v3s-licheepi-zero-dock.dtb; " \
"bootz 0x41000000 - 0x41800000;"
#define CONFIG_BOOTARGS "console=ttyS0,115200 panic=5 rootwait root=/dev/mmcblk0p2 earlyprintk rw vt.global_cursor_default=0"
然後準備編譯,添加配置:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_defconfig
如果要使用通用4.3寸屏請輸入:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_480x272LCD_defconfig
羣主網店5寸屏:
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make LicheePi_Zero_800x480LCD_defconfig
2、輸入以下命令,進行menuconfig
ARCH=arm make menuconfig
會彈出配置頁面:
不動它,直接退出。
當然,向自己修改修改配置也是可以的。
3、開始編譯
ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- make
注意:生成了u-boot文件:u-boot-sunxi-with-spl.bin
這個文件我們之後要燒寫進TF卡中。
二、Linux kernel編譯
輸入以下命令,這是默認配置:
CROSS_COMPILE=arm-linux-gnueabihf- ARCH=arm make licheepi_zero_defconfig
開始編譯內核( j4的意思是用四個CPU核心去多線程編譯 ):
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- -j4
內核編譯比較久,大家可以喝杯茶或者刷個B站等一等。
編譯好了,結果如下:
編譯好的內核鏡像在/arch/arm/boot下,文件名叫zImage。
這個zImage就是內核鏡像,我們之後要燒寫到TF卡中。
下一步是設備樹的編譯:
make ARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- dtbs
編譯好的設備樹文件在/arch/arm/boot/dts文件夾下:
我們把這個sun8i-v3s-licheepi-zero-dock.dtb文件考出來,這個是設備樹文件,等下也要燒到TF卡中。
三、Buildroot編譯
執行以下命令:
make menuconfig
然後照着官網:https://licheezero.readthedocs.io/zh/latest/%E7%B3%BB%E7%BB%9F%E5%BC%80%E5%8F%91/buildroot.html
一步一步配置。
官網的看不懂,亂七八糟的看不懂,我去暈哥的whycan上找了個帖子,裏面有個配製好的文件:
https://whycan.cn/files/members/4/buildroot-v3s-20171122.zip
具體使用方法我一步一步講,因爲帖子上有的小白也看不懂。
先複製到虛擬機裏面,然後解壓,得到文件 buildroot-v3s-20171122.config
然後這裏注意了啊,使用mv命令把這個文件移動到buildroot-2017.08這個源碼文件夾下,並把這個文件名字改成.config
具體命令如下(我目前的路徑就在這個配置文件的地方):
mv buildroot-v3s-20171122.config buildroot-2017.08/.config
然後這個配置文件就挪到了buildroot裏面,裏面的配置就會按照這個文件進行編譯。
然後make它:
期間會下載很多軟件包,下載速度非常慢,有一個方法是在控制檯上覆制他們的下載鏈接,用迅雷等下載器下載,然後複製到buildroot文件夾下的dl文件夾中,要是dl文件夾沒有,那就先make一下,在ctrl+C取消掉,就會生成了。
然後再重新make,就會在/output/images下生成roofs.tar這個文件。
這個文件就是我們的文件系統,要燒錄到TF卡中。
至此,需要的鏡像全部編譯完,拿到需要的四個文件:
三、開始燒寫TF卡
那個這種讀卡器,懟到USB口上。
先裝個ubuntu上的分區軟件:
sudo apt-get install gparted
右上角選擇自己的TF卡,然後把這個TF分區全都卸載刪除,點這個綠色的√,確定。我們接下來分區。
1、創建放zImage和dtb設備樹文件的分區:
新建這個boot這個分區,32M大小,fat16格式
新建rootfs這個分區,剩餘空間都給了,ex4格式。
點確定:
拔插一下U盤:
會識別出兩個盤符,分區完成:
2、開始燒錄
首先使用命令將u-boot燒寫到TF卡8k偏移處:
注意,我是root權限下!
dd if=u-boot-sunxi-with-spl.bin of=/dev/sdb bs=1024 seek=8
這個/dev/sdb 指的是TF卡,你的可能是sdb也有可能是sdc,主要還是用命令 fdisk -l 來查看:
接着把zImage和dtb文件直接拷貝到boot這個分區下:
然後把rootfs.tar這個文件直接解壓到rootfs這個分區下:
tar xvf rootfs.tar -C /media/momo/rootfs/
你的U盤自動掛載在/media這個文件夾下。
然後彈出TF卡,TF製作完成!
四、插上TF卡,上電測試啓動
成功啓動!
登錄賬號:root
密碼:無密碼
有問題可以在下方留言,或者是在https://whycan.cn/可以向很多大神提問!