Open35

Tiny Core Linuxのお勉強

NickNick

coreのisoの中身

`-- boot
    |-- core.gz
    |-- isolinux
    |   |-- boot.cat
    |   |-- boot.msg
    |   |-- f2
    |   |-- f3
    |   |-- f4
    |   |-- isolinux.bin
    |   `-- isolinux.cfg
    `-- vmlinuz
NickNick

coreplusのisoの中身

|-- boot
|   |-- core.gz
|   |-- isolinux
|   |   |-- boot.cat
|   |   |-- boot.msg
|   |   |-- f1
|   |   |-- f2
|   |   |-- f3
|   |   |-- f4
|   |   |-- isolinux.bin
|   |   |-- isolinux.cfg
|   |   `-- menu.c32
|   `-- vmlinuz
`-- cde
    |-- installer.instlist
    |-- kmaps.instlist
    |-- onboot.lst
    |-- optional
    |   |-- Xlibs.tcz
    |   |-- Xlibs.tcz.dep
    |   |-- Xlibs.tcz.md5.txt
    |   |-- Xorg-7.7-lib.tcz
    |   |-- Xorg-7.7-lib.tcz.dep
    |   |-- Xorg-7.7-lib.tcz.md5.txt
    |   |-- Xprogs.tcz
    |   |-- Xprogs.tcz.dep
    |   |-- Xprogs.tcz.md5.txt
    |   |-- Xvesa.tcz
    |   |-- Xvesa.tcz.dep
    |   |-- Xvesa.tcz.md5.txt
    |   |-- advcomp.tcz
    |   |-- advcomp.tcz.dep
    |   |-- advcomp.tcz.md5.txt
    |   |-- aterm.tcz
    |   |-- aterm.tcz.dep
    |   |-- aterm.tcz.md5.txt
    |   |-- atk.tcz
    |   |-- atk.tcz.dep
    |   |-- atk.tcz.md5.txt
    |   |-- bzip2-lib.tcz
    |   |-- bzip2-lib.tcz.md5.txt
    |   |-- cairo.tcz
    |   |-- cairo.tcz.dep
    |   |-- cairo.tcz.md5.txt
    |   |-- dbus.tcz
    |   |-- dbus.tcz.dep
    |   |-- dbus.tcz.md5.txt
    |   |-- dosfstools.tcz
    |   |-- dosfstools.tcz.md5.txt
    |   |-- expat2.tcz
    |   |-- expat2.tcz.md5.txt
    |   |-- ezremaster.tcz
    |   |-- ezremaster.tcz.dep
    |   |-- ezremaster.tcz.md5.txt
    |   |-- firmware-amd-ucode.tcz
    |   |-- firmware-amd-ucode.tcz.md5.txt
    |   |-- firmware-atheros.tcz
    |   |-- firmware-atheros.tcz.md5.txt
    |   |-- firmware-chelsio.tcz
    |   |-- firmware-chelsio.tcz.md5.txt
    |   |-- firmware-intel_e100.tcz
    |   |-- firmware-intel_e100.tcz.md5.txt
    |   |-- firmware-ipw2100.tcz
    |   |-- firmware-ipw2100.tcz.md5.txt
    |   |-- firmware-ipw2200.tcz
    |   |-- firmware-ipw2200.tcz.md5.txt
    |   |-- firmware-iwimax.tcz
    |   |-- firmware-iwimax.tcz.md5.txt
    |   |-- firmware-iwl8000.tcz
    |   |-- firmware-iwl8000.tcz.md5.txt
    |   |-- firmware-iwl9000.tcz
    |   |-- firmware-iwl9000.tcz.md5.txt
    |   |-- firmware-iwlwifi.tcz
    |   |-- firmware-iwlwifi.tcz.md5.txt
    |   |-- firmware-marvel.tcz
    |   |-- firmware-marvel.tcz.md5.txt
    |   |-- firmware-myri10ge.tcz
    |   |-- firmware-myri10ge.tcz.md5.txt
    |   |-- firmware-netxen.tcz
    |   |-- firmware-netxen.tcz.md5.txt
    |   |-- firmware-openfwwf.tcz
    |   |-- firmware-openfwwf.tcz.md5.txt
    |   |-- firmware-ralinkwifi.tcz
    |   |-- firmware-ralinkwifi.tcz.md5.txt
    |   |-- firmware-rtl_nic.tcz
    |   |-- firmware-rtl_nic.tcz.md5.txt
    |   |-- firmware-rtlwifi.tcz
    |   |-- firmware-rtlwifi.tcz.md5.txt
    |   |-- firmware-ti-connectivity.tcz
    |   |-- firmware-ti-connectivity.tcz.md5.txt
    |   |-- firmware-tigon.tcz
    |   |-- firmware-tigon.tcz.md5.txt
    |   |-- firmware-ueagle-atm.tcz
    |   |-- firmware-ueagle-atm.tcz.md5.txt
    |   |-- firmware-vxge.tcz
    |   |-- firmware-vxge.tcz.md5.txt
    |   |-- firmware-zd1211.tcz
    |   |-- firmware-zd1211.tcz.dep
    |   |-- firmware-zd1211.tcz.md5.txt
    |   |-- fltk-1.3.tcz
    |   |-- fltk-1.3.tcz.dep
    |   |-- fltk-1.3.tcz.md5.txt
    |   |-- fluxbox.tcz
    |   |-- fluxbox.tcz.dep
    |   |-- fluxbox.tcz.md5.txt
    |   |-- flwm.tcz
    |   |-- flwm.tcz.dep
    |   |-- flwm.tcz.md5.txt
    |   |-- flwm_topside.tcz
    |   |-- flwm_topside.tcz.dep
    |   |-- flwm_topside.tcz.md5.txt
    |   |-- fontconfig.tcz
    |   |-- fontconfig.tcz.dep
    |   |-- fontconfig.tcz.md5.txt
    |   |-- freetype.tcz
    |   |-- freetype.tcz.dep
    |   |-- freetype.tcz.md5.txt
    |   |-- fribidi.tcz
    |   |-- fribidi.tcz.dep
    |   |-- fribidi.tcz.md5.txt
    |   |-- gdk-pixbuf2.tcz
    |   |-- gdk-pixbuf2.tcz.dep
    |   |-- gdk-pixbuf2.tcz.md5.txt
    |   |-- glib2.tcz
    |   |-- glib2.tcz.dep
    |   |-- glib2.tcz.md5.txt
    |   |-- glibc_gconv.tcz
    |   |-- glibc_gconv.tcz.md5.txt
    |   |-- graphite2.tcz
    |   |-- graphite2.tcz.md5.txt
    |   |-- gtk2.tcz
    |   |-- gtk2.tcz.dep
    |   |-- gtk2.tcz.md5.txt
    |   |-- gzip.tcz
    |   |-- gzip.tcz.md5.txt
    |   |-- hackedbox.tcz
    |   |-- hackedbox.tcz.dep
    |   |-- hackedbox.tcz.md5.txt
    |   |-- harfbuzz.tcz
    |   |-- harfbuzz.tcz.dep
    |   |-- harfbuzz.tcz.md5.txt
    |   |-- icewm.tcz
    |   |-- icewm.tcz.dep
    |   |-- icewm.tcz.md5.txt
    |   |-- imlib2-bin.tcz
    |   |-- imlib2-bin.tcz.dep
    |   |-- imlib2-bin.tcz.md5.txt
    |   |-- imlib2.tcz
    |   |-- imlib2.tcz.dep
    |   |-- imlib2.tcz.md5.txt
    |   |-- iw.tcz
    |   |-- iw.tcz.dep
    |   |-- iw.tcz.md5.txt
    |   |-- jwm.tcz
    |   |-- jwm.tcz.dep
    |   |-- jwm.tcz.md5.txt
    |   |-- kmaps.tcz
    |   |-- kmaps.tcz.md5.txt
    |   |-- libEGL.tcz
    |   |-- libEGL.tcz.dep
    |   |-- libEGL.tcz.md5.txt
    |   |-- libFS.tcz
    |   |-- libFS.tcz.md5.txt
    |   |-- libGL.tcz
    |   |-- libGL.tcz.dep
    |   |-- libGL.tcz.md5.txt
    |   |-- libGLESv2.tcz
    |   |-- libGLESv2.tcz.dep
    |   |-- libGLESv2.tcz.md5.txt
    |   |-- libICE.tcz
    |   |-- libICE.tcz.md5.txt
    |   |-- libSM.tcz
    |   |-- libSM.tcz.md5.txt
    |   |-- libX11.tcz
    |   |-- libX11.tcz.dep
    |   |-- libX11.tcz.md5.txt
    |   |-- libXau.tcz
    |   |-- libXau.tcz.md5.txt
    |   |-- libXaw.tcz
    |   |-- libXaw.tcz.dep
    |   |-- libXaw.tcz.md5.txt
    |   |-- libXcomposite.tcz
    |   |-- libXcomposite.tcz.dep
    |   |-- libXcomposite.tcz.md5.txt
    |   |-- libXcursor.tcz
    |   |-- libXcursor.tcz.dep
    |   |-- libXcursor.tcz.md5.txt
    |   |-- libXdamage.tcz
    |   |-- libXdamage.tcz.dep
    |   |-- libXdamage.tcz.md5.txt
    |   |-- libXdmcp.tcz
    |   |-- libXdmcp.tcz.md5.txt
    |   |-- libXext.tcz
    |   |-- libXext.tcz.dep
    |   |-- libXext.tcz.md5.txt
    |   |-- libXfixes.tcz
    |   |-- libXfixes.tcz.dep
    |   |-- libXfixes.tcz.md5.txt
    |   |-- libXfont.tcz
    |   |-- libXfont.tcz.dep
    |   |-- libXfont.tcz.md5.txt
    |   |-- libXfont2.tcz
    |   |-- libXfont2.tcz.dep
    |   |-- libXfont2.tcz.md5.txt
    |   |-- libXft.tcz
    |   |-- libXft.tcz.dep
    |   |-- libXft.tcz.md5.txt
    |   |-- libXi.tcz
    |   |-- libXi.tcz.dep
    |   |-- libXi.tcz.md5.txt
    |   |-- libXinerama.tcz
    |   |-- libXinerama.tcz.dep
    |   |-- libXinerama.tcz.md5.txt
    |   |-- libXmu.tcz
    |   |-- libXmu.tcz.dep
    |   |-- libXmu.tcz.md5.txt
    |   |-- libXpm.tcz
    |   |-- libXpm.tcz.dep
    |   |-- libXpm.tcz.md5.txt
    |   |-- libXrandr.tcz
    |   |-- libXrandr.tcz.dep
    |   |-- libXrandr.tcz.md5.txt
    |   |-- libXrender.tcz
    |   |-- libXrender.tcz.dep
    |   |-- libXrender.tcz.md5.txt
    |   |-- libXres.tcz
    |   |-- libXres.tcz.dep
    |   |-- libXres.tcz.md5.txt
    |   |-- libXss.tcz
    |   |-- libXss.tcz.dep
    |   |-- libXss.tcz.md5.txt
    |   |-- libXt.tcz
    |   |-- libXt.tcz.dep
    |   |-- libXt.tcz.md5.txt
    |   |-- libXtst.tcz
    |   |-- libXtst.tcz.dep
    |   |-- libXtst.tcz.md5.txt
    |   |-- libXv.tcz
    |   |-- libXv.tcz.dep
    |   |-- libXv.tcz.md5.txt
    |   |-- libXvmc.tcz
    |   |-- libXvmc.tcz.dep
    |   |-- libXvmc.tcz.md5.txt
    |   |-- libXxf86dga.tcz
    |   |-- libXxf86dga.tcz.dep
    |   |-- libXxf86dga.tcz.md5.txt
    |   |-- libXxf86vm.tcz
    |   |-- libXxf86vm.tcz.dep
    |   |-- libXxf86vm.tcz.md5.txt
    |   |-- libcroco.tcz
    |   |-- libcroco.tcz.dep
    |   |-- libcroco.tcz.md5.txt
    |   |-- libdrm.tcz
    |   |-- libdrm.tcz.dep
    |   |-- libdrm.tcz.md5.txt
    |   |-- libffi.tcz
    |   |-- libffi.tcz.md5.txt
    |   |-- libfontenc.tcz
    |   |-- libfontenc.tcz.md5.txt
    |   |-- libglade.tcz
    |   |-- libglade.tcz.dep
    |   |-- libglade.tcz.md5.txt
    |   |-- libiw.tcz
    |   |-- libiw.tcz.md5.txt
    |   |-- libjpeg-turbo.tcz
    |   |-- libjpeg-turbo.tcz.md5.txt
    |   |-- liblzma.tcz
    |   |-- liblzma.tcz.md5.txt
    |   |-- libnl.tcz
    |   |-- libnl.tcz.md5.txt
    |   |-- libpci.tcz
    |   |-- libpci.tcz.md5.txt
    |   |-- libpciaccess.tcz
    |   |-- libpciaccess.tcz.md5.txt
    |   |-- libpng.tcz
    |   |-- libpng.tcz.md5.txt
    |   |-- librsvg.tcz
    |   |-- librsvg.tcz.dep
    |   |-- librsvg.tcz.md5.txt
    |   |-- libstartup-notification.tcz
    |   |-- libstartup-notification.tcz.dep
    |   |-- libstartup-notification.tcz.md5.txt
    |   |-- libtiff.tcz
    |   |-- libtiff.tcz.dep
    |   |-- libtiff.tcz.md5.txt
    |   |-- libxcb.tcz
    |   |-- libxcb.tcz.dep
    |   |-- libxcb.tcz.md5.txt
    |   |-- libxkbfile.tcz
    |   |-- libxkbfile.tcz.dep
    |   |-- libxkbfile.tcz.md5.txt
    |   |-- libxml2.tcz
    |   |-- libxml2.tcz.dep
    |   |-- libxml2.tcz.md5.txt
    |   |-- libxshmfence.tcz
    |   |-- libxshmfence.tcz.md5.txt
    |   |-- libzstd.tcz
    |   |-- libzstd.tcz.md5.txt
    |   |-- mkisofs-tools.tcz
    |   |-- mkisofs-tools.tcz.md5.txt
    |   |-- mtools.tcz
    |   |-- mtools.tcz.dep
    |   |-- mtools.tcz.md5.txt
    |   |-- ncursesw.tcz
    |   |-- ncursesw.tcz.md5.txt
    |   |-- openbox.tcz
    |   |-- openbox.tcz.dep
    |   |-- openbox.tcz.md5.txt
    |   |-- openssl-1.1.1.tcz
    |   |-- openssl-1.1.1.tcz.md5.txt
    |   |-- pango.tcz
    |   |-- pango.tcz.dep
    |   |-- pango.tcz.md5.txt
    |   |-- pci-utils.tcz
    |   |-- pci-utils.tcz.dep
    |   |-- pci-utils.tcz.md5.txt
    |   |-- pcre.tcz
    |   |-- pcre.tcz.dep
    |   |-- pcre.tcz.md5.txt
    |   |-- perl5.tcz
    |   |-- perl5.tcz.dep
    |   |-- perl5.tcz.md5.txt
    |   |-- pixman.tcz
    |   |-- pixman.tcz.md5.txt
    |   |-- readline.tcz
    |   |-- readline.tcz.dep
    |   |-- readline.tcz.md5.txt
    |   |-- syslinux.tcz
    |   |-- syslinux.tcz.md5.txt
    |   |-- tar.tcz
    |   |-- tar.tcz.md5.txt
    |   |-- tc-install-GUI.tcz
    |   |-- tc-install-GUI.tcz.dep
    |   |-- tc-install-GUI.tcz.md5.txt
    |   |-- tc-install.tcz
    |   |-- tc-install.tcz.dep
    |   |-- tc-install.tcz.md5.txt
    |   |-- udev-lib.tcz
    |   |-- udev-lib.tcz.dep
    |   |-- udev-lib.tcz.md5.txt
    |   |-- wbar.tcz
    |   |-- wbar.tcz.dep
    |   |-- wbar.tcz.md5.txt
    |   |-- wifi.tcz
    |   |-- wifi.tcz.dep
    |   |-- wifi.tcz.md5.txt
    |   |-- wireless-6.1.2-tinycore.tcz
    |   |-- wireless-6.1.2-tinycore.tcz.md5.txt
    |   |-- wireless_tools.tcz
    |   |-- wireless_tools.tcz.dep
    |   |-- wireless_tools.tcz.md5.txt
    |   |-- wpa_supplicant-dbus.tcz
    |   |-- wpa_supplicant-dbus.tcz.dep
    |   `-- wpa_supplicant-dbus.tcz.md5.txt
    |-- remaster.instlist
    |-- wifi.instlist
    |-- wififirmware.instlist
    |-- xbase.lst
    |-- xfbase.lst
    |-- xibase.lst
    `-- xwbase.lst
NickNick

core.gz = rootfs.gz + modules.gz

よく聞くrootfsとは

rootfsとは/に対応するもので、この/であるrootfsにマウントされる実デバイス(カーネルやライブラリのバイナリなどがある実デバイス)が「ルートファイルシステム」であると解釈できる。

すなわち、「ルートファイルシステム」を/であるrootfsにマウントしてシステムを起動する、のように表現することができる。

https://www.wdic.org/w/TECH/rootfs (Linux)

NickNick

手順が二つあるので整理

https://zenn.dev/link/comments/53e02fba6d754f

Busyboxというのは、Linuxの基本コマンド群を1つのファイルにして提供しているもので、

https://zenn.dev/link/comments/d5f783825e5e55

Toolchainとは、ターゲットの実行形式ファイルを作成するためのクロスコンパイラとそれに付随するツール、ライブラリのことで、一般的なPCでは、プログラムはコンパイルしたPCでそのまま実行するのに対して、組み込みシステムでは、作業用のPCでコンパイルしたファイルを、別のアーキテクチャのPCで実行することになります。

http://www.poyontech.com/wp/2016/03/12/post-67/

NickNick

https://forum.tinycorelinux.net/index.php/topic,24244.msg153323.html#msg153323

にcore.gzの作成手順があった。

core.gz can be created by combining rootfs.gz and modules.gz like this:
Code:

cat rootfs.gz modules.gz > core.gz

You are probably aware that rootfs.gz and modules.gz can be found under release/distribution_files/ for each architecture:
http://tinycorelinux.net/11.x/x86/release/distribution_files/

modules.gz is created by the sorter.sh script available from Github:
https://github.com/tinycorelinux/sorter

After running make modules and make modules_install you use sorter.sh to create modules.sh and all the kernel module
extensions. You can find the instructions included in these kernel compile instructions:
http://forum.tinycorelinux.net/index.php/topic,23272.msg147325.html#msg147325

There may be a script to create rootfs.gz or they might just unpack/repack the existing rootfs.gz. I don't know, but I don't
think it changes very often. You can create a root directory manually in some work directory, or you can modify an existing one.

To unpack:

mkdir tempdir
cd tempdir
zcat /path/to/existing/rootfs.gz | sudo cpio -i

To repack:
Code:

sudo find . | sudo cpio -o -H newc | gzip > /path/to/new/rootfs.gz

Found here:
http://forum.tinycorelinux.net/index.php/topic,22398.msg140327.html#msg140327

NickNick

GUIが以下のcdeのどれかだろう。

|-- boot
|   |-- core.gz
|   |-- isolinux
|   |   |-- boot.cat
|   |   |-- boot.msg
|   |   |-- f1
|   |   |-- f2
|   |   |-- f3
|   |   |-- f4
|   |   |-- isolinux.bin
|   |   |-- isolinux.cfg
|   |   `-- menu.c32
|   `-- vmlinuz
`-- cde
    |-- copy2fs.lst
    |-- onboot.lst
    |-- optional
    |   |-- Xlibs.tcz
    |   |-- Xlibs.tcz.md5.txt
    |   |-- Xprogs.tcz
    |   |-- Xprogs.tcz.md5.txt
    |   |-- Xvesa.tcz
    |   |-- Xvesa.tcz.md5.txt
    |   |-- aterm.tcz
    |   |-- aterm.tcz.md5.txt
    |   |-- bzip2-lib.tcz
    |   |-- bzip2-lib.tcz.md5.txt
    |   |-- fltk-1.3.tcz
    |   |-- fltk-1.3.tcz.md5.txt
    |   |-- flwm.tcz
    |   |-- flwm.tcz.md5.txt
    |   |-- freetype.tcz
    |   |-- freetype.tcz.md5.txt
    |   |-- imlib2-bin.tcz
    |   |-- imlib2-bin.tcz.md5.txt
    |   |-- imlib2.tcz
    |   |-- imlib2.tcz.md5.txt
    |   |-- libICE.tcz
    |   |-- libICE.tcz.md5.txt
    |   |-- libSM.tcz
    |   |-- libSM.tcz.md5.txt
    |   |-- libX11.tcz
    |   |-- libX11.tcz.md5.txt
    |   |-- libXau.tcz
    |   |-- libXau.tcz.md5.txt
    |   |-- libXcursor.tcz
    |   |-- libXcursor.tcz.md5.txt
    |   |-- libXdmcp.tcz
    |   |-- libXdmcp.tcz.md5.txt
    |   |-- libXext.tcz
    |   |-- libXext.tcz.md5.txt
    |   |-- libXfixes.tcz
    |   |-- libXfixes.tcz.md5.txt
    |   |-- libXfont.tcz
    |   |-- libXfont.tcz.md5.txt
    |   |-- libXmu.tcz
    |   |-- libXmu.tcz.md5.txt
    |   |-- libXrender.tcz
    |   |-- libXrender.tcz.md5.txt
    |   |-- libXt.tcz
    |   |-- libXt.tcz.md5.txt
    |   |-- libfontenc.tcz
    |   |-- libfontenc.tcz.md5.txt
    |   |-- libjpeg-turbo.tcz
    |   |-- libjpeg-turbo.tcz.md5.txt
    |   |-- libpng.tcz
    |   |-- libpng.tcz.md5.txt
    |   |-- libxcb.tcz
    |   |-- libxcb.tcz.md5.txt
    |   |-- wbar.tcz
    |   `-- wbar.tcz.md5.txt
    `-- xbase.lst
NickNick

トップページに

TinyCore is Core + Xvesa.tcz + Xprogs.tcz + aterm.tcz + fltk-1.3.tcz + flwm.tcz + wbar.tcz

って書いてあった。

http://tinycorelinux.net/

NickNick

Xvesa.tcz + Xprogs.tcz + aterm.tcz + fltk-1.3.tcz + flwm.tcz + wbar.tcz

のうち、

  • Xvesa should be enough for most machine.
  • Xfbdev (tinyX) can be buggy on some machine.
  • Xorg provides the best quality.

とあったので、xの基本ソフト

  • Xprogsはよくわからないが、X関係?
  • fltkとflwmはファイル管理
  • atermはxtermとかのxがaになった?スケスケのターミナルソフト?
    https://linux.die.net/man/1/aterm
  • wbarはたぶん下のアプリケーションを開くランチャー?
NickNick

30GBの仮想ハードディスクを作成
qemu-img create -f qcow2 tinycore.img 30G
実行
qemu-system-x86_64.exe -m 1G -smp 2 -boot order=dc -hda tinycore.img -cdrom CorePlus-current.iso