(原创)OrangePI-PC开发板Armbian系统安装到USB设备的方法

首先感谢@Jio童鞋帮忙,由于本人手上没有告诉sd卡,恰好有一不用的60G固态硬盘,用USB转接线当移动硬盘用,速度不错,就有把系统装到USB设备的想法,本人自己纯属业余玩,所以各种不懂,顺便说下,论坛的教程不适用,不要费劲了,现在的系统镜像是armbian官网下的。

准备工作,在USB设备写一同样的镜像,插入USB接口。启动armbian系统,修改/boot/boot.cmd文件,内容是将mmcblk0p1修改为USB设备,如/dev/sda1,然后所以mmc开头修改为USB,然后在顶端加入一行usb start。保存修改,使用apt-get install u-boot-tools

sudo mkimage -C none -A arm -T script -d boot.cmd boot.scr

更新boot.scr文件。然后sudo reboot,U盘灯狂闪,搞定。

原boot.cmd

gpio set PL10
gpio set PG11
setenv machid 1029
setenv bootm_boot_mode sec
if ext4load mmc 0 0x00000000 /boot/.verbose
then
setenv verbosity 7
else
setenv verbosity 1
fi
 
# nonstandard monitor settings for A10, A20 and A31 based boards
# screen is initialized before this script -> saving to u-boot environment is mandatory
#setenv video-mode sunxi:1024x768-24@60,monitor=dvi,hpd=0,edid=0,overscan_x=1,overscan_y=2
#saveenv
# nonstandard monitor settings
 
setenv bootargs "console=ttyS0,115200 console=tty1 root=/dev/mmcblk0p1 rootwait rootfstype=ext4 cgroup_enable=memory swapaccount=1 panic=10 consoleblank=0 enforcing=0 loglevel=${verbosity}"
#--------------------------------------------------------------------------------------------------------------------------------
# Boot loader script to boot with different boot methods for old and new kernel
#--------------------------------------------------------------------------------------------------------------------------------
if ext4load mmc 0 0x00000000 /boot/.next || fatload mmc 0 0x00000000 .next || ext4load mmc 0 0x00000000 .next
then
# sunxi mainline kernel
#--------------------------------------------------------------------------------------------------------------------------------
ext4load mmc 0 ${fdt_addr_r} /boot/dtb/${fdtfile} || fatload mmc 0 ${fdt_addr_r} /dtb/${fdtfile} || ext4load mmc 0 ${fdt_addr_r} /dtb/${fdtfile}
ext4load mmc 0 ${ramdisk_addr_r} /boot/uInitrd || fatload mmc 0 ${ramdisk_addr_r} uInitrd || ext4load mmc 0 ${ramdisk_addr_r} uInitrd || setenv ramdisk_addr_r "-"
ext4load mmc 0 ${kernel_addr_r} /boot/zImage || fatload mmc 0 ${kernel_addr_r} zImage || ext4load mmc 0 ${kernel_addr_r} zImage
bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
#--------------------------------------------------------------------------------------------------------------------------------
else
# sunxi android kernel
#--------------------------------------------------------------------------------------------------------------------------------
ext4load mmc 0 ${fdt_addr_r} /boot/script.bin || fatload mmc 0 ${fdt_addr_r} script.bin || ext4load mmc 0 ${fdt_addr_r} script.bin
ext4load mmc 0 ${ramdisk_addr_r} /boot/uInitrd || fatload mmc 0 ${ramdisk_addr_r} uInitrd || ext4load mmc 0 ${ramdisk_addr_r} uInitrd || setenv ramdisk_addr_r "-"
ext4load mmc 0 ${kernel_addr_r} /boot/zImage || fatload mmc 0 ${kernel_addr_r} zImage || ext4load mmc 0 ${kernel_addr_r} zImage
bootz ${kernel_addr_r} ${ramdisk_addr_r}
#--------------------------------------------------------------------------------------------------------------------------------
fi
# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

更新后的

usb start
gpio set PL10
gpio set PG11
setenv machid 1029
setenv bootm_boot_mode sec
if ext4load usb 0 0x00000000 /boot/.verbose
then
setenv verbosity 7
else
setenv verbosity 1
fi
 
# nonstandard monitor settings for A10, A20 and A31 based boards
# screen is initialized before this script -> saving to u-boot environment is mandatory
#setenv video-mode sunxi:1024x768-24@60,monitor=dvi,hpd=0,edid=0,overscan_x=1,overscan_y=2
#saveenv
# nonstandard monitor settings
 
setenv bootargs "console=ttyS0,115200 console=tty1 root=/dev/sda1 rootwait rootfstype=ext4 cgroup_enable=memory swapaccount=1 panic=10 consoleblank=0 enforcing=0 loglevel=${verbosity}"
#--------------------------------------------------------------------------------------------------------------------------------
# Boot loader script to boot with different boot methods for old and new kernel
#--------------------------------------------------------------------------------------------------------------------------------
if ext4load usb 0 0x00000000 /boot/.next || fatload usb 0 0x00000000 .next || ext4load usb 0 0x00000000 .next
then
# sunxi mainline kernel
#--------------------------------------------------------------------------------------------------------------------------------
ext4load usb 0 ${fdt_addr_r} /boot/dtb/${fdtfile} || fatload usb 0 ${fdt_addr_r} /dtb/${fdtfile} || ext4load usb 0 ${fdt_addr_r} /dtb/${fdtfile}
ext4load usb 0 ${ramdisk_addr_r} /boot/uInitrd || fatload usb 0 ${ramdisk_addr_r} uInitrd || ext4load usb 0 ${ramdisk_addr_r} uInitrd || setenv ramdisk_addr_r "-"
ext4load usb 0 ${kernel_addr_r} /boot/zImage || fatload usb 0 ${kernel_addr_r} zImage || ext4load usb 0 ${kernel_addr_r} zImage
bootz ${kernel_addr_r} ${ramdisk_addr_r} ${fdt_addr_r}
#--------------------------------------------------------------------------------------------------------------------------------
else
# sunxi android kernel
#--------------------------------------------------------------------------------------------------------------------------------
ext4load usb 0 ${fdt_addr_r} /boot/script.bin || fatload usb 0 ${fdt_addr_r} script.bin || ext4load usb 0 ${fdt_addr_r} script.bin
ext4load usb 0 ${ramdisk_addr_r} /boot/uInitrd || fatload usb 0 ${ramdisk_addr_r} uInitrd || ext4load usb 0 ${ramdisk_addr_r} uInitrd || setenv ramdisk_addr_r "-"
ext4load usb 0 ${kernel_addr_r} /boot/zImage || fatload usb 0 ${kernel_addr_r} zImage || ext4load usb 0 ${kernel_addr_r} zImage
bootz ${kernel_addr_r} ${ramdisk_addr_r}
#--------------------------------------------------------------------------------------------------------------------------------
fi
# Recompile with:
# mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr

你可能感兴趣的:((原创)OrangePI-PC开发板Armbian系统安装到USB设备的方法)