{"action":"closed","issue":{"url":"https://api.github.com/repos/fruit-testbed/fruitos/issues/2","repository_url":"https://api.github.com/repos/fruit-testbed/fruitos","labels_url":"https://api.github.com/repos/fruit-testbed/fruitos/issues/2/labels{/name}","comments_url":"https://api.github.com/repos/fruit-testbed/fruitos/issues/2/comments","events_url":"https://api.github.com/repos/fruit-testbed/fruitos/issues/2/events","html_url":"https://github.com/fruit-testbed/fruitos/issues/2","id":269455051,"number":2,"title":"A/B root filesystem","user":{"login":"herry13","id":532183,"avatar_url":"https://avatars2.githubusercontent.com/u/532183?v=4","gravatar_id":"","url":"https://api.github.com/users/herry13","html_url":"https://github.com/herry13","followers_url":"https://api.github.com/users/herry13/followers","following_url":"https://api.github.com/users/herry13/following{/other_user}","gists_url":"https://api.github.com/users/herry13/gists{/gist_id}","starred_url":"https://api.github.com/users/herry13/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/herry13/subscriptions","organizations_url":"https://api.github.com/users/herry13/orgs","repos_url":"https://api.github.com/users/herry13/repos","events_url":"https://api.github.com/users/herry13/events{/privacy}","received_events_url":"https://api.github.com/users/herry13/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":3,"created_at":"2017-10-30T01:02:44Z","updated_at":"2017-11-16T14:18:13Z","closed_at":"2017-11-16T14:18:13Z","author_association":"CONTRIBUTOR","body":"Partition layout:\r\n- partition1: boot -- `vfat`\r\n- partition2: root filesystem A -- `ext4`\r\n- partition3: root filesystem B -- `ext4`\r\n- partition4: data filesystem -- `btrfs`\r\n\r\nTODO:\r\n- [x] install software packages of root filesystem on partition2 (A) and partition3 (B) when building the image\r\n- [x] install kernel (`vmlinuz`) and ramdisk (`initramfs`) into directory `/boot` on partition2 (A) and partition3 (B) so that we will have two versions of kernel\r\n- [x] mount `/dev/mmcblk0p1` onto `/media/mmcblk0p1`\r\n- ~~[ ] create subdirectories `/media/mmcblk0p1/A` and `/media/mmcblk0p1/B`~~\r\n- ~~[ ] create a soft link `/boot` referring to `/media/mmcblk0p1/A` on partition2 (A)~~\r\n- ~~[ ] create a soft link `/boot` referring to `/media/mmcblk0p1/B` on partition3 (B)~~\r\n- [x] create a `uboot` package that contains `uboot-rpi` (rpi 0/1/CM), `uboot-rpi2`, `uboot-rpi3` (rpi 3/CM3)\r\n- [x] update `config.txt` to load U-Boot\r\n- [x] create a U-Boot script to do flipflop boot A/B using environment variables to determine **next boot**\r\n- [x] force kernel to reboot if it's panic when booting (set `panic=5` in kernel parameters)\r\n\r\n**New fact: U-Boot can load kernel/ramdisk from Ext4 partition!!!**"}}
{"actor":{"display_login":"herry13"}}