ln -s /usr/local/chromiumos/<path to src dir inside chromium untared>/
~/chromiumos
Code language: Bash (bash)
Since we have downloaded the source code, we wont need to build our repository. Now go in the ~chromiumos/src/scripts/ directory, where you will get many *.sh shell scripts , some of which require you to be a sudoer. ISSUES: A problem that I faced with this script is , every time I ran this script , it ended with error saying “useradd : root already exists”. So I opened up the script and wrote some echo statements as check points inside the script. and reran it untill I found out where the script was giving me trouble. It was around statement that was creating a user with UID = 0 and name as root,it also added some groups to the user. so, I replaced the uid with “1000” & user name with “vimal”, both without quotes. the previous statement in the script was commented out & replaced by something like this.Code language: Bash (bash)./make_chroot.sh
#in_chroot useradd -G ${DEFGROUPS} -g eng -u `id -u` -s \
# /bin/bash -m -c "${FULLNAME}" -p ${CRYPTED_PASSWD} ${USER}
in_chroot useradd -G eng,admin,adm,dialout,cdrom,floppy,audio,dip,video -g eng -u 1000 -s \
/bin/bash -m -c "${FULLNAME}" -p ${CRYPTED_PASSWD} vimal
in_chroot mkdir /home/root
in_chroot mkdir /home/root/trunk
Code language: Bash (bash)
The id -u was giving the value 0(zero) & ${USER} giving root. This fix solved the issue, only thing that user “vimal” had membership of admin group. Whatever be the output, the script must end successfully. When the chroot environment is made up you will have to chroot into it. Code language: Bash (bash)./enter_chroot.sh
cd ../platform/pam_google && ./enable_localaccount.sh USERNAME
Code language: Bash (bash)
You can experiment to substitute the USERNAME with your name like I did “vimal”. This will prompt you for a password. The encrypted password will be stored inCode language: Bash (bash)./set_shared_user_password.sh
./shared_user_password.txt
, so you only need to do this once. ISSUE: I faced Issue over here like many others on the net, reporting gcc and other packages not found inside the chroot environment. If it says any thing like this while executing the script:Code language: Bash (bash)./build_platform_packages.sh
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... no
checking for mawk... mawk
checking whether make sets $(MAKE)... yes
checking whether to enable maintainer-specific portions of Makefiles... no
checking for pkg-config... no
checking for gcc... no
checking for cc... no
checking for cl.exe... no
configure: error: in `/home/root/trunk/src/third_party/connman/connman-0.42':
configure: error: no acceptable C compiler found in $PATH
See `config.log' for more details.
/home/root/trunk/src/third_party/connman /home/root/trunk/src/third_party/connman
./../../scripts/common.sh: line 147: dpkg-buildpackage: command not found
Code language: Bash (bash)
Than it means that you have not made the directory structure <chroot>/home/root/trunk and you have not copied <chromium>/*.* into <chromium>/chroot/usr/local/chromium/*.* or you have not changed dir to <chromium>/chroot/usr/local/chromium/src/scripts/ before entering the chroot environment. Code language: Bash (bash)./build_kernel.sh
Using the above script you can make the kernel image that will actually boot up the pc or netbook. On success this script will generate a unique number in the last line of its output. ISSUE: I face a problem here, while running this script, it abruptly ended with no successful output. Again the echo checkpoint came to rescue. The group of statements pinpointed here was the one that customized the root file system. So I copied the stuff in <chroot>/usr/local/chromiumos/*.* to <chroot>/home/root/trunk/*.* & executed the script form new location. Hence the previous step was added in this tutorial. If every thing works out smooth thenCode language: Bash (bash)/build_image.sh
src/build/images
. directory will have some files & directories. The output of build_image.sh will create a unique monotonically increasingly numbered subdir under the output location which contains the master boot record (mbr.image) and the root filesystem image (rootfs.image). Check the output of build_image.sh to find the corresponding directory where your new image has been placed. Copy this new directory from images to some other convinient place, like /home/vimal/Desktop/image/*.* for later use. cd <chroot>/home/root/trunk/src/build/images/<SUBDIR with unique number>
sudo mount -o loop rootfs.image rootfs
sudo chroot rootfs
dpkg -l
Code language: Bash (bash)
It should print some where that all the packages are properly built with no issues in any of the packages. exit
sudo umount rootf
Code language: Bash (bash)
Now we are done with building the Chromium OS , but we still need to make a bootable image for VMPlayer. So copy the image_to_vmware.sh to the place where you had kept the copied root image in the convenient place and execute. You will need qemu-img package to be installed on your Linux system. Use this ide.vmdk as your bootables in any virtual machine for the VMPlayer. You can find some of the screenshots on my home page blog at too. Enjoy compilation :)Code language: Bash (bash)./image_to_vmware.sh --from=<path to image>/images/SUBDIR \ --to=<path to image>/images/SUBDIR/ide.vmdk
Java URL Encoder/Decoder Example - In this tutorial we will see how to URL encode/decode…
Show Multiple Examples in OpenAPI - OpenAPI (aka Swagger) Specifications has become a defecto standard…
Local WordPress using Docker - Running a local WordPress development environment is crucial for testing…
1. JWT Token Overview JSON Web Token (JWT) is an open standard defines a compact…
GraphQL Subscription provides a great way of building real-time API. In this tutorial we will…
1. Overview Spring Boot Webflux DynamoDB Integration tests - In this tutorial we will see…
View Comments
Dear Viral Patel , you have to be standard user and call './make_chroot.sh' as follows
>sudo ./make_chroot.sh
Note:
Please help.
After calling following script
> sudo ./make_local_repo.sh
After verifying and retrieving packages following happens (this is just a snippet not a complete detail) what is this? and it's causing me more than 200 MB.
28474/128474] -> "/var/cache/make_local_repo/libgl1-mesa-glx_7.5-1ubuntu1_i386.deb" [1]
Exporting indices...
Adding libglib2.0-0...
2009-12-18 11:27:12 URL:http://build.chromium.org/buildbot/packages/pool/main/g/glib2.0/libglib2.0-0_2.21.2-0ubuntu1_i386.deb [938568/938568] -> "/var/cache/make_local_repo/libglib2.0-0_2.21.2-0ubuntu1_i386.deb" [1]
Exporting indices...
Adding libglib2.0-dev...
2009-12-18 11:27:25 URL:http://build.chromium.org/buildbot/packages/pool/main/g/glib2.0/libglib2.0-dev_2.21.2-0ubuntu1_i386.deb [1094702/1094702] -> "/var/cache/make_local_repo/libglib2.0-dev_2.21.2-0ubuntu1_i386.deb" [1]
Exporting indices...