[TK1 Multi booting] Android OS booting with SD card

Hello ! ~

I’m Korean beginner programer. Thank for viewing my Topic. XD

I need some help… I want that multi booting on Tk1 module, with SD card.

Setting is just changed only consol mode command I want.

situation is

I have a SD card, I made “OS Image and File System” to booting Android OS on Tegra Tk1 module.

I see a link and follow that, 초코아빠* :: Ubuntu 12.04에서 grub 부팅 순서 변경 (기본 선택 변경)

[b]sudo vi /boot/grub/grub.cfg

GRUB_DEFAULT = “1”

sudo update-grub[/b]

Multi boot with SD card is work well on Ubuntu 12.04 in my PC.

But Tk1’s not work well

There is not “grub” directory in Tk1 file system.

root@tegra-ubuntu:~# ls /boot/grub
ls: cannot access /boot/grub: No such file or directory

Andoroid OS I made, just boot one OS is very good work.

but I want that

if SD card insert first and turn On => Booting Android OS
not insert SD card and turn On => Booting original Tk1 OS

Please help what can I check first…

A desktop PC has a BIOS (or its more modern variants) which provides some of the hardware setup prior to even the boot loader running. This also provides some interface for generic hardware setup. None of this exists on most embedded systems, including Jetson. GRUB is a boot loader which requires a BIOS or variants, and like a BIOS (or variants), does not exist in the embedded world. Essentially the [embedded] boot loader does all of the work of the BIOS, and is hard coded for some hardware (like a TK1 memory controller and the surrounding PM375 board). GRUB is unable to handle this environment. Fastboot could be used, but is terribly inconvenient and inflexible. U-boot is used instead.

You will want to explore the file /boot/extlinux/extlinux.conf (I’m assuming you’ve flashed from the default L4T R19.2 which TK1 ships with to something like R21.4). U-boot sets up memory controller, clocks, voltages, so on. It then reads configurations from the extlinux.conf file, and is able to pass along firmware (the dtb) and kernel arguments. You can even select multiple kernels at boot time by this if you have a serial console. One of those arguments can change where root partition is (“root=…”). “/boot” would remain on eMMC, but the “root=” argument (this defaults to /dev/mmcblk0p1, the eMMC) would be edited to point to the SD card. Leaving the original system on eMMC and editing extlinux.conf essentially gives you a backup rescue system.