GSoC Week 4
Jun 27, 2020
After expanding the root partition, I moved the toolchain built using crossdev to crOS. I extracted it in /usr/local/x86_64-cros-linux-gnu, force symlinked binutils and gcc’s binaries to toolchain’s /usr/bin, added PATH and LD_LIBRARY_PATH bash variable to .bashrc.I also symlinked toolchain’s sys-include to /usr/include
sudo tar -xzf cross-x86_64-cros-linux-gnu.tar -C /usr/local/x86_64-cros-linux-gnu/ sudo ln -sf /usr/local/x86_64-cros-linux-gnu/usr/x86_64-cros-linux-gnu/gcc-bin/9.3.0/* /usr/local/x86_64-cros-linux-gnu/usr/bin/ sudo ln -sf /usr/local/x86_64-cros-linux-gnu/usr/x86_64-cros-linux-gnu/binutils-bin/2.33.1/* /usr/local/x86_64-cros-linux-gnu/usr/bin/ sudo export PATH=/usr/local/x86_64-cros-linux-gnu/usr/bin:$PATH sudo export LD_LIBRARY_PATH=/usr/local/x86_64-cros-linux-gnu/usr/lib:$LD_LIBRARY_PATH sudo ln -s /usr/local/x86_64-cros-linux-gnu/sys-include/* /usr/include/ If you get inconsistency in STATE_PARTITION or Error: wrong fs type, bad option, bad superblock on /dev/sda1, missing codepage or helper program, or other error, Do follow the previous steps again after reboot for the check When i tried to execute a hello world program, It gave me a error Error: ld: cannot find /usr/lib64/libc_nonshared.
...
➦
GSoC Week 3
Jun 20, 2020
As gcc needed glibc version 2.29, I started emerging glibc
It said invalid: REDEPEND: USE flag 'kernel_linux' referenced in conditional 'kernel_linux?' is not in use
So, I added kernel_linux under IUSE_IMPLICIT variable to /etc/portage/make.profile/make.defaults
Similarly as above, Missing USE flag 'amd64' So, added amd64 use flag under IUSE_IMPLICIT variable to /etc/portage/make.profile/make.defaults
IUSE_IMPLICIT="abi_x86_64 prefix prefix-guest kernel_linux amd64" Then, it complained about saying Your /etc/nsswitch.conf is out of date. So, I had to update it.
...
➦
GSoC Week 2
Jun 14, 2020
After Building and Installing crOS for amd64, i just needed a google account to sign in and was ready to go
crosh is the terminal prompt used by crOS which can be opened by crtl+alt+t and the first warning the shell gave was:
bash: warning: /home/chronos/user/.bash_profile: warning: script from noexec mount; see https://chromium.googlesource.com/chromiumos/docs/+/master/security/noexec_shell_scripts.md
bash: warning: /home/chronos/user/.bashrc: warning: script from noexec mount; see https://chromium.googlesource.com/chromiumos/docs/+/master/security/noexec_shell_scripts.md
CrOS has noexec option in order to reject attempts to execute code as a part of its extremely security.
...
➦
GSoC Week 1
Jun 7, 2020
This week, I built toolchain for crOS (An acronmyn which I will be referring to ChromiumOS this entire series)
My first attempt was to create binary package for toolchain packages using crossdev
Create an overlay specifically for crossdev’s use mkdir -p /var/db/repos/crossdev mkdir -p /var/db/repos/crossdev/{profiles,metadata} echo 'crossdev' > /var/db/repos/crossdev/profiles/repo_name echo 'masters = gentoo' > /var/db/repos/crossdev/metadata/layout.conf chown -R portage:portage /var/db/repos/crossdev Then instruct portage and crossdev to use this overlay: #FILE /etc/portage/repos.
...
➦
Build and Install Chromium OS dev
Jun 5, 2020
This post is a quick start guide to get the Chromium OS source and build it.
The official guide is at: Developer Guide
These are the steps and commands I used while following the official guide:
Prerequisite: You must have any up-to-date Linux distribution on a x86_64 64-bit system with sudo access to develop Chromium OS (They recommend and offer support to Ubuntu 16.04 - Xenial) Install git revision control system, the curl download helper, and lvm tools sudo apt-get install git-core gitk git-gui curl lvm2 \ thin-provisioning-tools python-pkg-resources python-virtualenv \ python-oauth2client xz-utils python3.
...
➦