Tiny Core Linuxのお勉強

エクステンションの作り方

docker
12はこれベースでこっちのフォーク?

リポジトリ

sshの設定
tcでは入れないので、adduserで追加する。

coreのisoの中身
`-- boot
|-- core.gz
|-- isolinux
| |-- boot.cat
| |-- boot.msg
| |-- f2
| |-- f3
| |-- f4
| |-- isolinux.bin
| `-- isolinux.cfg
`-- vmlinuz

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

core.gz
の中身について

最新版のコンパイル方法?
core.gz = rootfs.gz + modules.gz
corepure64.gz = rootfs64.gz + modules64.gz
..and you can also run core64 using rootfs.gz + modules64.gz

bootの流れがかいてあった
vmlinuzはカーネル、core.gzはinitramfsのファイル、そして起動にはisolinuxを使っているのでそのファイル類が含まれています。

vmlinuzについて

initramfsは、ルートディレクトリをcpioという形式でアーカイブし、 gzipで圧縮したもの
らしい。引用:

isolinuxとは、CD-ROMなどで使われるISO 9660ファイルシステムからLinuxカーネルをブートするプログラム。

core.gz = rootfs.gz + modules.gz
よく聞くrootfsとは
rootfsとは/に対応するもので、この/であるrootfsにマウントされる実デバイス(カーネルやライブラリのバイナリなどがある実デバイス)が「ルートファイルシステム」であると解釈できる。
すなわち、「ルートファイルシステム」を/であるrootfsにマウントしてシステムを起動する、のように表現することができる。

core.gzの作り方:

dockerイメージを作成した記事

Tiny Core Linux のパッケージは squashfs を利用して作成されており、

多分これがコンパイル手順

手順が二つあるので整理
Busyboxというのは、Linuxの基本コマンド群を1つのファイルにして提供しているもので、
Toolchainとは、ターゲットの実行形式ファイルを作成するためのクロスコンパイラとそれに付随するツール、ライブラリのことで、一般的なPCでは、プログラムはコンパイルしたPCでそのまま実行するのに対して、組み込みシステムでは、作業用のPCでコンパイルしたファイルを、別のアーキテクチャのPCで実行することになります。

に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:
modules.gz is created by the sorter.sh script available from Github:
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:
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:

次は、GUIのほう。
コアを入れた後、GUIを追加する手順が参考になりそう

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

xvesaあたりの模様。

トップページに
TinyCore is Core + Xvesa.tcz + Xprogs.tcz + aterm.tcz + fltk-1.3.tcz + flwm.tcz + wbar.tcz
って書いてあった。

ディストリビューションは以下にある

guiを調べると、xvesaのソースはここ?

どうも3種類のX/GUIがある模様
Xvesa should be enough for most machine.
Xfbdev (tinyX) can be buggy on some machine.
Xorg provides the best quality.

window周りの説明

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はたぶん下のアプリケーションを開くランチャー?

wbarについて、具体的に分かった。

remaster関係

ロゴについて調べた

カスタム例

ソースハここらへん。URLは公式からはリンクが見つからなかった。

バージョンによってリンクが切れているので、
のほうを見たほうがよい。

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