Tiny Core Linux
Tiny Core Base => TCB Q&A Forum => Topic started by: TinyFun on January 20, 2014, 06:16:27 AM
-
Hi,
Being used to Mint and Knoppix, TC is proving a steep learning curve. Sometimes frustrating, still fun.
Started with Coreplus on lenovo thinkpad R61
installed
graphics-3.8.13-tinycore
xf86-video-nouveau
Xorg-7.7
Xorg-7.7-3d
Xorg seems to work, (with some help, got evince working) but only very basic. For instance xrandr only provided a few resolutions, much less than other distros.
Xorg.0.log shows nouveau drivers are loaded:
[ 38.860] (II) NOUVEAU driver for NVIDIA chipset families :
[ 38.860] RIVA TNT (NV04)
[ 38.860] RIVA TNT2 (NV05)
[ 38.860] GeForce 256 (NV10)
[ 38.860] GeForce 2 (NV11, NV15)
[ 38.860] GeForce 4MX (NV17, NV18)
[ 38.860] GeForce 3 (NV20)
[ 38.860] GeForce 4Ti (NV25, NV28)
[ 38.860] GeForce FX (NV3x)
[ 38.860] GeForce 6 (NV4x)
[ 38.860] GeForce 7 (G7x)
[ 38.860] GeForce 8 (G8x) <-------------------- G84M on my machine
[ 38.860] GeForce GTX 200 (NVA0)
[ 38.860] GeForce GTX 400 (NVC0)
Btw: Xorg also loads xvesa, modesetting and fbdev, but warns that it could not find module "nv".
Should xvesa be removed ?
is missing "nv" causing the problem ?
Searching, found out that linux actually needs two drivers: for kernel and Xorg. Illuminating pic at http://en.wikipedia.org/wiki/File:Linux_Graphics_Stack_2013.svg
Lspci -k -mvv gave this result for my grahics card:
Slot: 01:00.0
Class: VGA compatible controller
Vendor: nVidia Corporation
Device: G84M [Quadro NVS 140M]
SVendor: Lenovo
SDevice: ThinkPad T61
Rev: a1
Other distros (working well) show a line saying driver: nouveau, and a line starting with module
Questions:
- am I correct in thinking that somehow the kernel module (libDRM) driver for nouveau is not loaded?
- if so, how to rectify ?
- am I looking at (shaking with fear) having to recompile the kernel ?
- if so, where to start finding info about how to do that?
Any help would be welcome. Want to learn, want to try, but at the moment I'm looking at a brick wall.
Feel like a junior league player suddenly thrown into a major league game.
-
Is xf86-video-nv what you're looking for?
-
Hi Juanito,
Thank you for fast answer. After installing xf86-video-nv, Xorg now loads the module. One step closer.
But still only have 3 options for resolution. Failed to mention in prev post that module "modesetting" is also not found by Xorg.
And also: still no DRM driver visible in output lspci -k -mvv
-
You could try xf86-video-modesetting, but I'm not sure this is going to bring anything.
-
@Juanito
already did and no, it didn't
So still wondering what is wrong
-
is the nvidia-agp module loaded?
-
Checked the last xorg.0.log, does not show agp. But, forgive me, what is agp module? It is not in tcz repository.
-
nvidia-agp is a kernel module in the graphics-KERNEL extension (you can see what is where using the "provides" function of the apps gui).
-
OK, checking with provides gave me tcz : "graphics-3.8.13-tinycore". But this is already loaded onboot.
lsmod gives this result: intel-agp (bold).
Module Size Used by Tainted: P
xt_owner 12288 4
ipt_REJECT 12288 1
xt_conntrack 12288 1
xt_LOG 16384 0
nf_conntrack_ftp 12288 0
iptable_nat 12288 0
nf_conntrack_ipv4 16384 2
nf_defrag_ipv4 12288 1 nf_conntrack_ipv4
nf_nat_ipv4 12288 1 iptable_nat
nf_nat 16384 2 iptable_nat,nf_nat_ipv4
nf_conntrack 40960 6 xt_conntrack,nf_conntrack_ftp,iptable_nat,nf_conntrack_ipv4,nf_nat_ipv4,nf_nat
cpufreq_stats 12288 0
cpufreq_powersave 12288 0
cpufreq_userspace 12288 0
cpufreq_conservative 12288 0
snd_hda_codec_analog 61440 1
iwl4965 65536 0
iwlegacy 32768 1 iwl4965
mac80211 155648 2 iwl4965,iwlegacy
wl 3833856 0
joydev 16384 0
snd_hda_intel 28672 0
snd_hda_codec 57344 2 snd_hda_codec_analog,snd_hda_intel
cfg80211 110592 4 iwl4965,iwlegacy,mac80211,wl
snd_hwdep 12288 1 snd_hda_codec
snd_pcm 49152 2 snd_hda_intel,snd_hda_codec
i2c_i801 16384 0
lib80211 12288 1 wl
snd_timer 20480 1 snd_pcm
snd 36864 6 snd_hda_codec_analog,snd_hda_intel,snd_hda_codec,snd_hwdep,snd_pcm,snd_timer
intel_agp 12288 0
soundcore 12288 1 snd
intel_gtt 16384 1 intel_agp
snd_page_alloc 12288 2 snd_hda_intel,snd_pcm
agpgart 24576 2 intel_agp,intel_gtt
squashfs 24576 218
loop 20480 436
acpi_cpufreq 12288 1
microcode 12288 0
pcspkr 12288 0
sdhci_pci 12288 0
battery 16384 0
ac 12288 0
sdhci 24576 1 sdhci_pci
mmc_core 53248 1 sdhci
video 16384 0
backlight 12288 1 video
r592 16384 0
wmi 12288 0
memstick 12288 1 r592
lpc_ich 16384 0
e1000e 106496 0
mfd_core 12288 1 lpc_ich
mperf 12288 1 acpi_cpufreq
-
does your machine have a dual graphics system - intel + nvidia - by any chance?
What happens with "sudo modprobe nvidia-agp"?
-
Dual graphics: No. Only Nvidia. Strangely, knoppix reports: nvidia G86 quadro nvs 14M, not G84 like TC.
after reboot to text mode, ran "sudo modprobe nvidia-agp" and "startx" result:
lsmod shows nvidia_agp loaded. Also agpgart loaded and used by nvidia_agp, intel_agp, intel_gtt
no change in output lspci -k (so still no kernel driver ?), no change in output xrandr
Knoppix shows kernel module nouveau loaded from /lib/modules/3.9.6/kernel/drivers/GPU/drm/nouveau/nouveau.ko
starting to run before learning to walk ? A well, swimming is best learned in the water.
EDIT: Also tried loading extensions libdrm.tcz and linux-3.8.3-api-headers. Still no luck
-
# CONFIG_DRM_NOUVEAU is not set
http://tinycorelinux.net/5.x/x86/release/src/kernel/config-3.8.13-tinycore
-
OK, that seems to make sense. The file you pointed me to shows configuration of TC kernel.
Suppose that means that I have to compile the kernel with # CONFIG_DRM_NOUVEAU uncommented.
So I have a new project.
Any tips on where to start ? Have never compiled a kernel myself before, always thought that was something for real linux guru's.
-
See previous topics: http://forum.tinycorelinux.net/index.php/topic,14983.msg86917.html#msg86917
I recommend you use the Nvidia binary driver if nv, vesa, fbdev don't support your resolution. Nouveau is very unstable, it might be fine in one version and then in another you have a black screen.
-
Thanks for the tip. And for the time you put into this question before. The active and helpful cooperation of TC-community really makes a difference. Without guys like you and Tinypoodle, I would probably have given up in desperation.
Before following up on it however, have started to read this: http://www.linux.org/threads/%EF%BB%BFthe-linux-kernel-introduction.4203/ to understand the basics.
When basics mastered, I believe there are some extra TC-specific things to think about (saw something about package tc-compile).
At present it is outside the scope of my limited abilities, so this process is probably going to take a while.
Compiling my own kernel. Wow ! would that really be possible ?
-
compiling the tinycore kernel with a few small changes is really not a big deal - the patched source and config are available at:
http://repo.tinycorelinux.net/5.x/x86/release/src/kernel/
..and you need the compiletc, bash, perl5 and ncurses-dev extensions
Then basically: $ tar xf linux-3.8.13-patched.txz
$ cd linux-3.8.13-patched
$ make mrproper
$ cp /tmp/config-3.8.13-tinycore ./.config
$ make menuconfig
[set nvidia module to "m"]
$ make modules
..and then gzip the nv module and make your own personal extension of it.
-
Thnx again, downloaded source. Gives a reference while trying to understand what, where, how and why.
Have compiled progs from source a few times, but only as "script-kiddie", blindly following .configure/make/make_install. This time, would like to understand what I'm doing.
Edit:
understand your block of code.
Could you explain what you mean by .and then gzip the nv module and make your own personal extension of it.
Where to find nv module ? Do I have to compile these ?
-
The nouveau.ko module will have been compiled somewhere in the source tree - you just have to find it :)
The gtkfind extension is very useful for this kind of thing or you can use "find" from the cli
Once located, load the advcomp and squashfs-tools-4.x extensions and: $ gzip nouveau.ko
$ advdev -z4 nouveau.ko.gz
$ mkdir -p /tmp/pkg/usr/local/lib/modules/3.8.13-tinycore/kernel/drivers/gpu/drm/nouveau
$ sudo chown -R root:root /tmp/pkg/usr
$ sudo cp nouveau.ko.gz /tmp/pkg/usr/local/lib/modules/3.8.13-tinycore/kernel/drivers/gpu/drm/nouveau
$ cd /tmp
$ sudo mksquashfs pkg/ nouveau-3.8.13-tinycore.tcz
$ sudo chown tc:staff nouveau-3.8.13-tinycore.tcz
-
@Juanito,
I am sooo tempted to go script-kiddie with the extensive roadmap that you supplied.
At the moment, got to $ make menuconfig
[set nvidia module to "m"]
This i.tensively covered on linux,org as mentioned before. While reading up, found this on linux.org"
NOTE: Code in the Linux kernel can be put in the kernel itself or made as a module. For instance, users can add Bluetooth drivers as a module (separate from the kernel), add to the kernel itself, or not add at all. When code is added to the kernel itself, the kernel requires more RAM space and boot-up time may take longer. However, the kernel will perform better. If code is added as modules, the code will remain on the hard-drive until the code is needed. Then, the module is loaded to RAM. This will reduce the kernel's RAM usage and decrease boot time. However, the kernel's performance may suffer because the kernel and the modules will be spread throughout the RAM. The other choice is to not add some code. For illustration, a kernel developer may know that a system will never use Bluetooth devices. As a result, the drivers are not added to the kernel. This improves the kernel's performance. However, if users later need Bluetooth devices, they will need to install Bluetooth modules or update the whole kernel.
Conclusion: these are modules that are shown using "lsmod" and loaded with "modprobe".
Questions:
- if making module (and making .tcz from it that loads onboot), will it load automatically or do i need to load it with modprobe
- Is it possible to compile into the kernel (no module) ? would that load automatically without need for "modprobe"
- Would , compile into kernel restrict it's use to just this one machine ?
BTW: Find that documentation on TC is difficult to find, Would it be an idea to put your help to my post domewhere in the documentation (proposed subject) compiling TC kernel).
As for find: grew up with norton on msdos, so tend to use MC->command->find file
-
Is that a typo?
advdev -z4 nouveau.ko.gz
is it not
advdef -z4 nouveau.ko.gz
?
-
Hi coreplayer2
Yes, that's a typo.
-
Questions:
- if making module (and making .tcz from it that loads onboot), will it load automatically or do i need to load it with modprobe
Likely
- Is it possible to compile into the kernel (no module) ? would that load automatically without need for "modprobe"
Yes, but requires compiling a new kernel
- Would , compile into kernel restrict it's use to just this one machine ?
No
BTW: Find that documentation on TC is difficult to find, Would it be an idea to put your help to my post domewhere in the documentation (proposed subject) compiling TC kernel).
Feel free to improve wiki ;)
-
At the moment, got to $ make menuconfig
[set nvidia module to "m"]
In fact it would have been clearer to say: $ make menuconfig
[load .config]
[set nvidia module to "m"]
- if making module (and making .tcz from it that loads onboot), will it load automatically or do i need to load it with modprobe
it depends, usually the hardware is detected and the module loads automatically - but not always.
- Is it possible to compile into the kernel (no module) ? would that load automatically without need for "modprobe"
Yes, it is possible, but then you'd need to remaster tinycore, better to leave it as a module and include it in an extension.
-
OK, thanks for clarification,
Should have read more closely. By issueing
$ make modules
You do not compile the entire kernel, but only the modules set in .config
-
So far, not so good. :'(
Everything seemed to work. Had to search menuconfig a bit, then walked the dog as compiling took a while. Found nouveau.ko and created extension.
Put nouveau-3.8.13-tinycore.tcz in tce/optional, used apps to select it as onboot. Result: got so far as "loading extensions message" then :black screen.
Rebooted from usb, removed the .tcz. Tried to load the extension locally. But again: screen went totally black.
unsquashed extension, replaced nouveau.ko.gz with small txt file and squashed again. On loading this extension, the txt file appeared in the /usr/local/.......drm/nouveau/ dir. So placement seems to be OK.
So, put nouveau.ko.gz in /usr/local/.......drm/nouveau/ dir manually, "sudo depmod -a" and "modprobe nouveau. Result is again black screen
Any ideas ?
Edit Is this what Curaga was warning me about ?
-
Unfortunately, yes :(
-
..but maybe blackisting a couple of the intel modules mentioned earlier might help?
-
Leaves the nvidia route
Downloaded and ran NVIDIA-Linux-x86-100.14.09-pkg1.run (after exit to prompt). This left me with:
ERROR: Unable to find the kernel source tree for the currently running kernel.
Please make sure you have installed the kernel source files for your
kernel and that they are properly configured; on Red Hat Linux systems,
for example, be sure you have the 'kernel-source' or 'kernel-devel' RPM
installed. If you know the correct kernel source files are installed,
you may specify the kernel source path with the '--kernel-source-path'
command line option.
Read posts http://forum.tinycorelinux.net/index.php?topic=13308.0 and http://forum.tinycorelinux.net/index.php/topic,12965.msg71206.html#msg71206. As recommended, installed linux-3.8.3-api-headers.tcz. Also downloaded scripts create-nvidia-raw and create-nvidia-package.
With headers installed, tried nvidia installer again. Result: exactly the same error.
Script create-nvidia-raw calls nvidia installer and will do a lot of things with the results of the nvidia installer. So if that prog does not complete, neither will the script.
Already have source for tinycore, but I'm using coreplus. Can I simply point nvidia-installer to the dir that contains source files for tinycore ?
Does anyone have experience with this ? I's getting difficult to see the "fun" instead of the "frustrating"
Edit
Thanks Juanito, your post came in while typing this. Will try that first :-[
Edit2
Before blacklisting, booted from cd. Added nouveau-3.8.13-tinycore.tcz to /tmp/tce.optional and tried to load it.
Gave error: modprobe: can't load module nouveau (kernel.tclocal/drivers/gpu/drm/nouveau/nouveau.ko.gz) unknown symbol in module or unknown parameter
Well, it is no black screen, but don't know what it means either (corrupted ?)
Like Alice keeps getting stranger and stranger ...
@Rich,
Thanks, will try that too.
-
Hi TinyFun
I think you may need the kernel source files for compiling the Nvidia driver. Check out linux-kernel-sources-env.tcz
-
With linux-kernel-sources-env.tcz installed, still the same error. as cited above.
Damn ! Why is it such a problem to get a very well known and much used graphics card to functiuon the way it is supposed to ?
Notice I'm getting angry. Time for a break.
Not angry at you guys, appreciate all the help. Just at myself for not knowing, understanding, not being patient enough.
Edit
After install of install linux-kernel-sources-env.tcz, nothing seemed to happen. After unsquashing, found shell script and desktop-file. Ran shell script, which downloaded source files.
Nvidia gives a different error now:
The kernel header file '/lib/modules/3.8.13-tinycore/build/include/linux/version.h' does not exist
The most likely reason for this is that the kernel source files in 'lib/modules/3.8.13-tinycore/build have not been configured
There is at least some movement. :)
Anyone who knows how I can 'configure' the build files ? does that mean running menuconfig ?
Edit2
'lib/modules/3.8.13-tinycore/build' is a link to /usr/src where source files are installed. Think the error is about header files, but I did put linux-3.8.3-api-headers.tcz in onboot.
What am I missing ?
-
a very well known and much used graphics card
Or notorious according to many :P
-
Well, if you want?? I can send you the driver extension I've been working on for you to test ??
Sent from my iPhone using Tapatalk
-
@Tinypoodle,
Notorious? Infamous for causing troubles. Starting to understand Linus's "finger" a while back when talking about nvidia. thanks, you made me laugh again
@Coreplayer2,
I'd be grateful. mail is [suspicious]pietje@puk@314[at]hotmail.com[/suspicious]. Remove the @'s and put @ in place of [at]. But I'd be more grateful still if you would show me what I'm doing wrong as it seems to be working on your system?
So far, I've noticed that:
/lib/modules/3.8.13-tinycore/build/include/linux/ = /usr/src/include/linux
Header files from linux-3.8.3-api-headers are stored in /usr/include. These header files are links to the corresponding CLOOP files.
Have a feeling that the answer is close, but can't see it (yet). Something like a way to merge the header-directories and the source-directories. Moving/copying manually ? Pfffff...
I assume there is a way to obtain the headers: to dump the linux-3.8.3-api-headers.tcz and simply(?) compile everything in /usr/src/ ? Then again, the nouveau.ko.gz module I compiled is not correct. Probably a stupid mistake due to lack of knowledge. But maybe I'll just let the machine "huff and puff" while I'm sleeping.
The good news: I've only been playing with Tinycore and asking newbie questions on this forum for a few days, but have learned more about linux than after years of Mint/Knoppix.
Edit:
Started compiling in the hope it will correct things.
Question: my machine is 64 bit, but I am running a 32 bit version of TC. Just saw some messages like "xxxxx count shifted, 32 is not between 0 and 31" Too fast to see exactly. Could that be the reason compiling nouveau failed ?
-
Hope it's not against forum-etiquette, decided to make this a new post A few observations:
- Compiling does not generate version.h
- Google says missing version.h is a quite common problem with proprietary apps
- Found several post claiming version.h is no longer supported in kernel
like http://permalink.gmane.org/gmane.linux.can/4721
Reliability ? Can anyone confirm ?
Also found several work-arounds:
- symlinks as per https://wiki.archlinux.org/index.php/VMware (search for version.h)
- using make as per http://downloadmirror.intel.com/5874/eng/README.txt (search for version.h)
Both did not work for me. Got make error and with symlinks, Nvivia installer complained it could not determine kernel version and quit. Outright copy of file did not work
Also tried starting nvidia installer with --add-this-kernel and kernel-source-path=usr/src[/]
Still nojoy. Nvidia seems to want version.h and nothing else.As I do not know how to generate one, i'm throwing the towel in the ring. This is beyond me.
Except maybe I could check if there is a newer driver (does nvidia have beta's? They have been talking about supporting linux rather publicly. Worth checking?)
And: nvidia installer has -x option to extract. Possibility to see how they check? Possibility for a small "hack"?.
Don't know. Robert Pirsig would say that i am "out of gumption"
And what is good Phaedrus, and what is not good, do we need anyone to tell us these things?
[EDIT]: Removed the marquee tags because they are obnoxious and annoying. Rich
-
Before blacklisting, booted from cd. Added nouveau-3.8.13-tinycore.tcz to /tmp/tce.optional and tried to load it.
Gave error: modprobe: can't load module nouveau (kernel.tclocal/drivers/gpu/drm/nouveau/nouveau.ko.gz) unknown symbol in module or unknown parameter
I assume nouveau.ko depends on a module in the graphics-KERNEL extension - you can check using "modinfo nouveau"
-
Hi, Juanito,
Late in the evening, or morning for you ? Thanks, as you can see from last post, needed a "pickup".
Will try your suggestion, but first have to close my eyes. This @#@#$@@#$ problem has burned too much "midnight oil".
-
Hope it's not against forum-etiquette
Using the <marquee> tag would fit that description in my book :o
EDIT: Looks like I was slow and that had already been taken care of when I posted.
-
Before blacklisting, booted from cd. Added nouveau-3.8.13-tinycore.tcz to /tmp/tce.optional and tried to load it.
Gave error: modprobe: can't load module nouveau (kernel.tclocal/drivers/gpu/drm/nouveau/nouveau.ko.gz) unknown symbol in module or unknown parameter
Did you run
sudo modprobe
first?
-
I didn't realize it but Rich is a maintainer of an Nvidia extension. I had previously sent Arslan S a heads up on needing an update, meanwhile I compiled my own, one for each x86 and x86_64 systems.
Meanwhile.. TinyFun if you're still having trouble I sent you complete (driver,glx,settings,openCL) 32bit nvidia v319.49 driver extension and install instructions for you to try out, good luck
Use glxgears from xdemos.tcz to test 3d FPS
-
About marquee: sorry, won't happen again. Hope you don't mind this : :-[
@Tinypoodle, Juanito, will try your suggestions about nouveau later today. Am not certain about Did you run
Code: [Select]
sudo modprobe
after all the experiments regarding nvidia
@coreplayer2
Very kind of you Thanks a lot ! Will try. On a "clean" install.
So, enough things left to test. But...will try to see it as a game and not let it get to me if things do not work.