Tiny Core Linux
Tiny Core Base => Corepure64 => Topic started by: pixel on July 23, 2024, 11:33:55 PM
-
hello all. i am using an x64 uefi-only laptop and am trying to install tiny core linux in any way possible with my wifi. i've tried every iso file offered and only tinycorepure64 works, which leaves me stuck considering the install guide assumes im already connected to the internet, which i am not. the only tool that works in creating this bootable usb is etcher, which makes the usb read-only (i'm trying this on a mac), stopping me from adding the tcz files for the wifi extension i need. this whole thing sounds like a massive xy problem; all i want is an installation of tinycore, i don't care how. i'd appreciate anyone pointing me in the right direction :)
-
wrt
>my wifi.
---> if it is a router you can access , perhaps *you* can skip some hoop jumping and use a lan cable ? <---
>the only tool that works in creating this bootable usb is etcher
what else did you try ?
because ... afaik (apart from some boot loader/manager eg grub2 ,ect) no "tool" is required ...
-
sorry my post is kind of all over the place. anyhow, i've tried rufus with wine, diskutility, and unetbootin. i found a way to manually add the extensions by booting up my computer with the bootable usb, then ejecting the usb after tc is loaded and erasing and reformatting the thing to fat32, then readding the same files along with any extensions in cde/optional and editing the onboot.lst file. the issue with this is now i can't boot into the os again, so i have to keep my computer on and can't reboot. i have no clue if this is the correct way to do it. i dont have a lan cable available to use for a wired connection.
i've managed to add every tcz file listed on http://repo.tinycorelinux.net/15.x/x86_64/tcz/wifi.tcz.tree in an attempt to use wifi.tcz. weirdly enough, now my taskbar isn't showing and when i try booting up the wifi app from the click menu, it just displays a black screen which allows typing???
-
taskbar thing is just me being stupid, wbarconf fixes it.
-
i've managed to add every tcz file listed on http://repo.tinycorelinux.net/15.x/x86_64/tcz/wifi.tcz.tree in an attempt to use wifi.tcz.
Hi pixel. In order for wifi to work you also need to load the firmware for your specific wireless card. For example, if you have an Intel card that uses iwlwifi, you also need firmware-iwlwifi.tcz
If you are downloading extensions using a different distro that already has working wifi, you should use Rich's FetchExt.sh script, available here:
https://forum.tinycorelinux.net/index.php?action=dlattach;topic=23034.0;attach=6171
Rich's script automatically downloads an extension's entire dependency tree for you. To grab wifi.tcz and its entire dependency tree, for example, do this:
$ FetchExt.sh wifi
-
i believe i am using iwlwifi, so i'm trying to install firmware-iwlwifi.tcz. every tcz file i load with tceload -wi says already installed except elogind.tcz, which for whatever reason tries to download from the internet? of course since im offline, wget then throws an error. i have elogind's tcz, dep, and md5 files just like every other extension, yet elogind doesn't wanna cooperate.
-
I'm on TCL15 x86_64 with wifi working, no elogind issues. Try deleting the elogind extension and re-downloading it using Rich's script.
If elogind.tcz can't be loaded, wifi.tcz will refuse to load because elogind is in its dependency tree.
tce-status -i shows you which extensions are actually loaded on your system.
-
i'm on mac without stuff like wget so i cant use that script. i redownloaded elogind and it appears to work, however running tce-load -wi /mnt/myusb/cde/optional/*.tcz gave a screen full of errors reading like "c_rehash: line 12: openssl: not found". tce-status says openssl is loaded. the wifi app is still just a black screen.
-
I'm not sure what's causing the openssl-related errors. Some extensions in the repo depend on the older openssl-1.1.1:
$ depends-on.sh openssl-1.1.1
dillo-beta.tcz
edbrowse.tcz
fuse-zip.tcz
irssi.tcz
keepalived.tcz
lagrange.tcz
libstrophe.tcz
libtorrent-rasterbar.tcz
mariadb-10.4.tcz
mariadb-10.5-client.tcz
mariadb-10.5.tcz
mariadb-10.6-client.tcz
mariadb-10.6.tcz
minizip.tcz
mongo.tcz
net-snmp35.tcz
openldap2.4.tcz
openssl-1.1.1-dev.tcz
pixiewps.tcz
pixz.tcz
proftpd.tcz
pure-ftpd.tcz
python3.7.tcz
python-cryptography.tcz
python-m2crypto.tcz
python.tcz
qt-5.x-base.tcz
sc-im.tcz
tcpdump.tcz
If you manually downloaded one of the above extensions, you should also download openssl-1.1.1.tcz and load it.
P.S. It should be fine to have both openssl.tcz and openssl-1.1.1.tcz loaded at the same time.
EDIT: You should try to get a wired network connection for TCL (or use FetchExt.sh on a linux machine) to get the extensions you need to get TCL up and running. It will make your life much easier.
-
nevermind, turns out i need realtek firmware. i downloaded 1.1.1 openssl just to be safe and firmwares rtl_nic and rtlwifi, along with doing modprobe rtlwifi and rtl_pci. ifconfig -a lists the following:
"dummy0" link encap: ethernet
broadcast noarp
"lo" link encap: local loopback
up loopback running
"tun10" link encap: unspec
noarp
i don't know how to interpret any of that information, but it says nothing about wifi or wireless, so it feels like something is wrong. running wifi.sh just says no networks found.
-
I suspect you have not loaded the extension that contains the necessary firmware.
What is the exact model of your wireless nic? This command may help (but requires lshw.tcz):
sudo lshw -c network
-
this is what lshw says:
network: unclaimed
description: network controller
product: rtl8821ce 802.11ac pcie wireless network adapter
vendor: realtek semiconductor co. ltd
physical id: 0
bus info: pci@0000:02:00.0
version: 00
width: 64 bits
clock: 33mhz
capabilities: pm msi pciexpress cap_list
configuration latency=0
resources: ioport:e000(size=256) memory:a1100000-a110ffff
-
It seems your rtl8821ce adapter is being very finicky. It sounds like it is a wifi+bluetooth usb dongle, is that right?
I can't find firmware with exactly "rtl8821ce" anywhere in the filename, but I found rtl8821c_config.bin in the firmware-rtl_bt.tcz extension. Hopefully this is what you need.
I also found kernel module rtw88_8821ce.ko.gz in wireless-6.6.8-tinycore64.tcz. It sounds like you already downloaded this extension.
Try this:
$ tce-load -wi wireless-6.6.8-tinycore64 firmware-rtl_bt wifi
$ sudo modprobe rtw88_8821ce
Then unplug your dongle and plug it back in. Then try using the wifi extension.
-
i'm not using a dongle, the wifi thingy is built into my laptop. wifi.sh still finds nothing and ifconfig remains unchanged.
heres all of my currently loaded extensions if that helps:
Xfbdev
Xlibs
Xprogs
aterm
attr
bzip2-lib
ca-certificates
dbus
elogind
expat2
firmware-iwlwifi
firmware-rtl_bt
firmware-rtl_nic
firmware-rtl_wifi
fltk-1.3
flwm
freetype
gcc_libs
glib2
graphite
harfbuzz
imlib2
imlib2-bin
libICE
libSM
libX11
libXau
libXcursor
libXdmcp
libXext
libXfixes
libXfont
libXmu
libXrender
libXt
libcap
libffi
libfontenc
libiw
libjpeg-turbo
libnl
libpng
libxcb
lshw
ncursesw
openssl
openssl-1.1.1
pcre
pcre21042
readline
udev-lib
util-linux
wbar
wifi
wireless-6.6.8-tinycore64
wireless_tools
wpa_supplicant-dbus
[Edit]: Added code tags. Rich
-
Hi pixel. It seems all the necessary extensions are loaded.
I only have two more ideas right now. Please add rfkill.tcz and iw.tcz to your loaded extensions.
To make sure your wireless nic isn't turned off at hardware level (e.g., by a physical on/off switch), please try this command:
$ sudo rfkill list all
And let's see the output of this:
$ iw dev wlan0 info
If neither command gives us clues, maybe other users can share their thoughts while we mull this over.
P.S. Have you used this wireless nic successfully before?
-
rfkill gives no output and iw throws this error: "error while loeadig shared libraries: libnl-genl-3.so.200: wrong elf class: elfclass32". just to make sure i downloaded the 64bit version i redownloaded the libnl extension and the error persists. i've used wifi on windows with this laptop for 3+ years with no issue.
-
mostly to boost your confidence and spirits, it would be instructive/interesting for you to grab the latest EasyOS from Barry Kauler and see how that performs. there is a very slight learning curve to the puppy/quirky/easyos distros that Barry has so graciously worked on for many years but definitely well worth it. here are the current links(for future visitors, double-checking the parent directory will show if a newer version exists...time does march-on after all)
latest:
https://distro.ibiblio.org/easyos/amd64/releases/scarthgap/2024/6.1.1/
readme:
https://distro.ibiblio.org/easyos/amd64/releases/scarthgap/2024/6.1.1/readme.htm
release notes:
https://distro.ibiblio.org/easyos/amd64/releases/scarthgap/2024/6.1.1/release-notes.htm
-
I just checked the rfkill extension in the CorePure64-15.x repo:
http://tinycorelinux.net/15.x/x86_64/tcz/rfkill.tcz
and got this: file /tmp/tcloop/rfkill/usr/local/sbin/rfkill
/tmp/tcloop/rfkill/usr/local/sbin/rfkill: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib/ld-linux-x86-64.so.2, for GNU/Linux 3.0.21, stripped
..so it is 64-bit
..and it works: sudo rfkill list all
0: dell-rbtn: Wireless LAN
Soft blocked: no
Hard blocked: no
1: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
2: hci0: Bluetooth
Soft blocked: no
Hard blocked: no
To check which firmware your wifi hardware needs, reboot, load only the wireless-KERNEL and bluetooth-KERNEL extensions and issue this command: dmesg | grep firmware
...
[ 23.699520] platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
[ 23.785437] iwlwifi 0000:02:00.0: Direct firmware load for iwlwifi-7260-17.ucode failed with error -2
[ 23.843757] iwlwifi 0000:02:00.0: loaded firmware version 17.459231.0 7260-17.ucode op_mode iwlmvm
[ 747.236848] bluetooth hci0: Direct firmware load for intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq failed with error -2
[ 747.239327] Bluetooth: hci0: Intel Bluetooth firmware file: intel/ibt-hw-37.7.10-fw-1.80.2.3.d.bseq..you will see something analogous to "Direct firmware load for iwlwifi-7260-17.ucode failed with error -2", which will give you the name of the firmware file you need. The blueooth drivers were included in case your hardware needs both to work.
Note also, from: http://tinycorelinux.net/15.x/x86_64/tcz/wifi.tcz.tree
..openssl-1.1.1 is not needed.
-
I checked the rfkill extension before recommending it and it works for me on TCL15 x86_64, too:
$ sudo rfkill list all
0: phy0: Wireless LAN
Soft blocked: no
Hard blocked: no
It seems the problem--or at least part of the problem--is that pixel accidentally downloaded libnl or some other extension from the 32-bit repo. Using a wired network connection for initial setup or using FetchExt.sh on a linux distro with working wifi is definitely the way to go. I would delete all downloaded extensions and start from scratch with one of these two methods.
Juanito, thank you for the tip on how to find exact name of the necessary firmware. This is much better than my method ("lshw -c network" to get model followed by internet search).
-
i have redownloaded every extension and can verify everything is meant for x64. i heres what dmesg had to say:
bluetooth hci0: Direct firmware load for rtl_bt/rtl8821c_fw.bin failed with error -2
Bluetooth: hci0: RTL: firmware file rtl_bt/rtl8821c_fw not found
platform regulatory.0: Direct firmware load for regulatory.db failed with error -2
rtw_8821ce 0000:02:00.0: Direct firmware load for rtw88/rtw8821c_fw.bin failed with error -2
rtw_8821ce 0000:02:00.0: failed to request firmware
rtw_8821ce 0000:02:00.0: failed to load firmware
is there perhaps an issue in how i load extensions? all i do is mount my usb and tce-load -wi *.tcz. not sure if i need to load the firmware before wireless-kernel and bluetooth-kernel.
-
So your bluetooth firmware is in the firmware-rtl_bt extension and your wifi firmware is in the firmware-rtlwifi extension.
For things to work properly, the firmware needs to be loaded before any other extensions.
For example: tce-load -i firmware-rtlwifi wifi..should get your wifi working
You can double-check that the firmware gets loaded using dmesg as explained previously.
-
im happy to say my wifi is working now :)
so i downloaded the tce-install gui extension and ran through it and it said the installation completed with no issues. i did sudo reboot and my computer doesnt recognize my hard drive as bootable, probably because tce-install gui didnt create an efi nor a boot directory where it put lost+found along with tce. not sure if yall want me to open up another thread about this.
-
The installer does not support EFI. Please enable CSM/bios boot in your bios.
-
is there a guide for x64 uefi systems? does tc-install work for x64 uefi or am I gonna have to do everything manually? my bios is uefi only.
-
You will need to do it manually - see the thread on uefi/legacy bios dual boot.
https://forum.tinycorelinux.net/index.php/topic,19364.0.html
..you only need the uefi part of things.
-
when i try to do sudo mkfs.vfat /dev/mmcblk0p2, it says:
Cannot initialize conversion from codepage 850 to ANSI_X3.4-1968: Invalid argument
Cannot initialize conversion from ANSI_X3.4-1968 to codepage 850: Invalid argument
Using internal CP850 conversion table
mkfs.vfat: /dev/mmcblk0p2 contains a mounted filesystem.
-
i followed the rest of the tutorial and it didnt work. i think it was because of me being unable to use mkfs.vfat. some hours later now i cant mount my drives, its saying input/output error.
-
when i try to do sudo mkfs.vfat /dev/mmcblk0p2, it says:
Cannot initialize conversion from codepage 850 to ANSI_X3.4-1968: Invalid argument
Cannot initialize conversion from ANSI_X3.4-1968 to codepage 850: Invalid argument
Using internal CP850 conversion table
mkfs.vfat: /dev/mmcblk0p2 contains a mounted filesystem.
That is a problem in recent TC versions because newer glibc isn't using files in /usr/lib/gconv/gconv-modules.d that are installed from glibc_gconv.tcz. I described this work around (https://forum.tinycorelinux.net/index.php/topic,26218.msg168756.html#msg168756) earlier.
-
it turns out it didnt matter as following the tutorial at https://www.parkytowers.me.uk/thin/Linux/TinycoreUEFI.shtml succeeds in loading tc :) now im trying to setup persistence with tce. i specify tce=mmcblk0p1 on boot, yet /etc/sysconfig/tcedir seems to always just point to /tce, requiring me to delete and recreate it pointing to the correct /mnt/mmcblk0p1/tce for any of the tce related commands to work.
-
@pixel: The easiest and safest way we usually handle persistence here at my office is to use a drive's ID (UUID) in the command-line.
blkid | grep mmcblkThis should give you a list of any drive/partition that is seen by the operating system (with "mmcblk" in it)
In the command line (ie: boot commands) you would enter
tce=UUID="abcdef..."..where obviously "abcdef..." would be the ID retrieved from the blkid command above it.
This can be repeated for the /home and /opt directories as well where
opt=UUID="ID String"
home=UUID="ID String"
You may also use the drive/partition's LABEL (tce=LABEL="Something") but this isn't fool-proof.
Additionally, if you simply create /mnt/mmcblk0p1/tce in most occasions TinyCore will search for and find it, even when it's not entered as a boot command, but again, this isn't fool-proof.
Your mmcblk0p1/tce directory should be chown'ed by tc:staff recursively if you're using the default user setup.
NOW, one thing I have noticed with a few machines is MMC block devices are sometimes NOT detected in the hardware layer FAST enough for the boot process to complete successfully.
In this case you want to set USB WAIT TIMEOUT to about 15 seconds (much more than necessary, but well within reason) as a boot command with the same UUID as your tce=UUID so that you know the device is "online" after a warm/cold boot.
Here's an example configuration from and x64 machine with an odd, onboard M.2 SATA/PICe hybrid slot which the kernel supports and detects... but it's not "ready" for the kernel to communicate with for a number of seconds after BIOS completes its start-up. This configuration sets both tce and /opt as persistent locations on the drive AND allows for up to 15 seconds to pass while it scans for its given UUID (If it detects the drive at 7 seconds, for example, the remaining timeout is skipped. If it is not detected within 15 seconds, which rarely happens, /mnt/mmcblk0p1/tce will not be detected as /etc/sysconfig/tcedir and instead, points unintentionally to /tce which fails. The default install sets waitusb to five seconds, which this specific device failed constantly at that value.)
/mnt/mmcblk0p1/tce/boot/extlinux/extlinux.conf
DEFAULT corepure64
LABEL corepure64
KERNEL /tce/boot/vmlinuz64
INITRD /tce/boot/corepure64.gz
APPEND quiet syslog vga=791 waitusb=15:UUID="00000000-1111-2222-3333-444445555566" tce=UUID="00000000-1111-2222-3333-444445555566" opt=UUID="00000000-1111-2222-3333-444445555566"
Note: If you add the tce=UUID entry in the configuration file, you normally will not have to create the tce directory yourself. This is a good way to test the timeout and hardware interaction during boot by NOT creating the directory manually.
-
that worked for persistence for me :) for whatever reason it also gave me a gui instead of just a terminal (after installing and rebooting i only had access to the ctrl-alt-f1 terminal and not the ctrl-alt-f2 gui, but now i do.
so now i'm trying to support my touchpad. i did some more looking and the wiki says tc uses a lighter flavor of xorg for the display server so i tried downloading all of xorg and starting it with startx after i made the x11 directory and conf files yada yada yada. when i do startx it has no output, but it refreshes my icons in the taskbar and now the windows ui is slightly different. i'm assuming that means it loaded correctly. my laptop finally now also recognizes my touchpad with motion and click, but no scroll. is there some conf file i need to add for scroll just like the conf file to stop screentearing or would it just be easier to add a new desktop environment such as gnome to possibly fix that?
-
...for whatever reason it also gave me a gui...
Odds are the extensions were already installed, but without the system being able to "find" the tce directory, it could not load any of the installed extensions as it didn't see any. This is especially common when the storage device isn't "online" when the boot process begins, thus the USB WAIT boot command helps with this even if it's not specifically a USB device.
...so now i'm trying to support my touchpad...
Without a make/model of the laptop not even G00gle can find you an answer :)
Try installing both usbutils and pci-utils and see what it returns as to the hardware in your machine. (PCI command is lspci, USB would then be lsusb)
You may need to install a firmware extension that's specific to certain USB, Serial, PCI, etc. devices in order to open doors to things such as scrolling, assuming drivers for the device are not proprietary.
That said, if you were able to determine and install driver support, you may find that the original "light weight" X server might do just fine without all of the "Xcess."