接触一个星期,搭建了虚拟机,双系统,移动硬盘ubuntu , 总结下来, 移动硬盘的系统最方便,硬盘可以分为2个分区,一个装系统, 一个放文件(windows也可以识别),感觉还是挺爽的。
以下是这几天折腾u-boot的一些操作,主要为编译环境的搭建,uboot编译,及烧写。 刚接,太虐心了。
1、搭建ubuntu系统, 我用的是移动双系统, 版本为18.04TLS
2、更新源
sudo apt-get update
3、更新软件,
sudo apt-get upgrade
4、安装gcc
sudo apt-get install gcc
5、安装git
sudo apt-get install git
6、安装依赖库
sudo apt install libssl-dev
7、安装arm 交叉编译环境 ,使用官方提供的, git:
git clone https://github.com/friendlyarm/prebuilts.git
8、解压工具
sudo mkdir -p /opt/nanopim2a/tools
sudo tar xf prebuilts/gcc-x64/arm-cortexa9-linux-gnueabihf-4.9.3.tar.xz -C /opt/nanopim2a/tools/
9、添加环境变量
sudo gedit /etc/profile
在文件末尾添加
export PATH=/opt/nanopim2a/tools/4.9.3/bin:$PATH
export GCC_COLORS=auto
保存后运行
source /etc/profile
输入: arm-linux-gcc -v ,有如下输出证明交叉编译环境配置成功
目标:arm-cortexa9-linux-gnueabihf
配置为:/work/toolchain/build/src/gcc-4.9.3/configure --build=x86_64-build_pc-linux-gnu --host=x86_64-build_pc-linux-gnu --target=arm-cortexa9-linux-gnueabihf --prefix=/opt/FriendlyARM/toolchain/4.9.3 --with-sysroot=/opt/FriendlyARM/toolchain/4.9.3/arm-cortexa9-linux-gnueabihf/sys-root --enable-languages=c,c++ --with-arch=armv7-a --with-tune=cortex-a9 --with-fpu=vfpv3 --with-float=hard --with-pkgversion=ctng-1.21.0-229g-FA --with-bugurl=http://www.friendlyarm.com/ --enable-__cxa_atexit --disable-libmudflap --disable-libgomp --disable-libssp --disable-libquadmath --disable-libquadmath-support --disable-libsanitizer --with-gmp=/work/toolchain/build/arm-cortexa9-linux-gnueabihf/buildtools --with-mpfr=/work/toolchain/build/arm-cortexa9-linux-gnueabihf/buildtools --with-mpc=/work/toolchain/build/arm-cortexa9-linux-gnueabihf/buildtools --with-isl=/work/toolchain/build/arm-cortexa9-linux-gnueabihf/buildtools --with-cloog=/work/toolchain/build/arm-cortexa9-linux-gnueabihf/buildtools --with-libelf=/work/toolchain/build/arm-cortexa9-linux-gnueabihf/buildtools --enable-lto --with-host-libstdcxx='-static-libgcc -Wl,-Bstatic,-lstdc++,-Bdynamic -lm' --enable-threads=posix --enable-linker-build-id --with-linker-hash-style=gnu --enable-plugin --enable-gold --disable-multilib --with-local-prefix=/opt/FriendlyARM/toolchain/4.9.3/arm-cortexa9-linux-gnueabihf/sys-root --enable-long-long
线程模型:posix
gcc 版本 4.9.3 (ctng-1.21.0-229g-FA)
10、下载sd_fuse
git clone https://github.com/friendlyarm/sd-fuse_nanopi2.git
11、下载uboot 及编译
git clone https://github.com/friendlyarm/u-boot.git
cd u-boot
git checkout nanopi2-v2016.01
make s5p4418_nanopi2_defconfig
make CROSS_COMPILE=arm-linux-
12、拷贝bootloader.img到 sd_fuse的prebuilt目录下
cp ./u-boot/bootloader.img ./sd-fuse_nanopi2/prebuilt/
13、SD卡插入设备, 输入 ls /dev/sd* , 查看sd卡挂在的符号
14、使用sd_fuse烧写(我的SD卡挂在为sdc)
./fusing.sh /dev/sdc
stone@cq:~/nanopim2/sd-fuse_nanopi2$ ./fusing.sh /dev/sdc
Re-running script under sudo...
---------------------------------
./prebuilt/bl1-mmcboot.bin fusing
dd if=./prebuilt/bl1-mmcboot.bin of=/dev/sdc bs=512 seek=1
记录了41+1 的读入
记录了41+1 的写出
21208 bytes (21 kB, 21 KiB) copied, 0.0307948 s, 689 kB/s
---------------------------------
./prebuilt/loader-mmc.img fusing
dd if=./prebuilt/loader-mmc.img of=/dev/sdc bs=512 seek=129
记录了53+1 的读入
记录了53+1 的写出
27528 bytes (28 kB, 27 KiB) copied, 0.0173851 s, 1.6 MB/s
---------------------------------
./prebuilt/bl_mon.img fusing
dd if=./prebuilt/bl_mon.img of=/dev/sdc bs=512 seek=513
记录了32+0 的读入
记录了32+0 的写出
16384 bytes (16 kB, 16 KiB) copied, 0.0132997 s, 1.2 MB/s
---------------------------------
./prebuilt/bootloader.img fusing
dd if=./prebuilt/bootloader.img of=/dev/sdc bs=512 seek=3841
记录了898+1 的读入
记录了898+1 的写出
459936 bytes (460 kB, 449 KiB) copied, 0.477725 s, 963 kB/s
---------------------------------
Bootloader image is fused successfully.
至此搭建,编译, 烧写结束