You are not logged in.
IIRC, installing linux-lts triggered automatic grub update which picked it up and added a menu entry automatically. So maybe nothing will be needed.
To produce i686 package on x86-64 install gcc-multilib and run:
CARCH=i686 makepkg
Offline
IIRC, installing linux-lts triggered automatic grub update which picked it up and added a menu entry automatically.
Unless you've set it to update automatically when a new kernel is installed, I don;t think grub automatically updates. You have to do it yourself.
Claire is fine.
Problems? I have dysgraphia, so clear and concise please.
My public GPG key for package signing
My x86_64 package repository
Offline
hmm so can I recompile from within the same directory or I have to make everything fresh again?
To produce i686 package on x86-64 install gcc-multilib and run
*confused* so I do have to add that explicitly or I don't I guess I'll try and run it as is with the kernel I made and if I have trouble then ask questions
Not sure what your mention of grub updating is in response to since it was kind of a disjointed half sentence
Last edited by MarthaParkin (2016-05-19 19:54:18)
Offline
Btw., you can install with "makepkg -i" instead of doing "pacman -U ...".
You can do that,but for split packages (and AL has many of those) makepkg -i installs everything in that package.
That often leads to installing of things you don't need and may not even want.
@marthaparkin :
Ifyou omit the CARCH=i686 , your kernel will be sametype as your build pc (x86_64 ).
Last edited by Lone_Wolf (2016-05-20 11:59:58)
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
(A works at time B) && (time C > time B ) ≠ (A works at time C)
Online
How am I supposed to compile the build with the new name because I renamed the file linux.install to linux-usb.install but I get the error
==> ERROR: install file (linux.install) does not exist or is not a regular file.
It said in the wiki that I needed to change that filename if using a custom install in `pkgbase=` so what is the deal? or should I only change the name after it is compiled once installing it?
Edit: ok seemed to compile ok when I kept the linux.install file the same and just changed the pkgbase name.
Last edited by MarthaParkin (2016-05-21 11:10:13)
Offline
So I fired up the kernel today on the target machine and unfortunately still not working. But I just had a quick look in dmesg and I see it is a different error (iirc). Now it is complaining that it doesn't have enough power for all ports.
Here is dmesg https://ptpb.pw/MzWI about 3/4 of the way down beginning around
[ 2.018849] hub 2-2:1.0: USB hub found
Any more suggestions/patches in light of this new data? A patch now to somehow tell it to shut up and carry on regardless ignoring power error
Last edited by MarthaParkin (2016-05-21 17:22:00)
Offline
Did you check that it doesn't work? I think this is your keyboard:
[ 2.803343] usb 2-2.1: new full-speed USB device number 3 using ohci-pci
...
[ 21.358966] input: Access Keyboards Ltd. USB HID keyboard as /devices/pci0000:00/0000:00:02.0/usb2/2-2/2-2.1/2-2.1:1.0/0003:0DB5:011A.0003/input/input6
Can you post lsusb -v again?
To silence those warnings about insufficient power and hub_port_status failures, simply change "bNbrPorts = USB_MAXCHILDREN" to "bNbrPorts = 5" - now all hubs with more than 31 ports will have exactly 5
Offline
Did you check that it doesn't work? I think this is your keyboard:
[ 2.803343] usb 2-2.1: new full-speed USB device number 3 using ohci-pci ... [ 21.358966] input: Access Keyboards Ltd. USB HID keyboard as /devices/pci0000:00/0000:00:02.0/usb2/2-2/2-2.1/2-2.1:1.0/0003:0DB5:011A.0003/input/input6
Can you post lsusb -v again?
To silence those warnings about insufficient power and hub_port_status failures, simply change "bNbrPorts = USB_MAXCHILDREN" to "bNbrPorts = 5" - now all hubs with more than 31 ports will have exactly 5
So should I change both lines where that code occurs? they will have 5 what? 5 ports or 5 power rating ?
I also got an error of
can't get debug descriptor: Resource temporarily unavailable
can't get device qualifier: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
cannot read port 6 status, Resource temporarily unavailable (11)
can't get debug descriptor: Resource temporarily unavailable
can't get debug descriptor: Resource temporarily unavailable
after running the command.
Offline
There is only one such line, others have > or ==, not =.
5 ports, of course - ports are what this code is dealing with. Power only comes into play because filling all 31 ports would require over 3A of current from the USB bus and Linux is just complaining that there isn't that much available.
Last edited by mich41 (2016-05-22 08:03:54)
Offline
An interesting occurrance today...
I tried with the new one and it didn't work again when initially booting up. Not sure what the error messages mean here they are:
Note the usb disconnect at the end couple of lines of dmesg is where I did actually disconnect it to plug back in to my other computer; to avoid any confusion.
Now to the interesting occurance... When I went to plug in the keyboard with the stock kernel loaded and pc already switched on by chance I pressed some buttons and it worked! However when I reset loading the new kernel it wouldn't work again once it got past the grub screen and booted into the prompt. But once again I removed the device and plugged it back in again and it worked. So does this offer insight in to a solution?
It is not convenient to have to plug it out and back in all the time but certainly was good to see it actually work on the command prompt for once.
Edit: another thing I just noticed is the key bindings are off when I was typing a little on arch after replugging. This keyboard is programmable using a windows software but the manufacturers state that it is held within the keyboard and not specific to the OS. However it does seem OS related since the keys were not the same which I had programmed when I was typing on the arch prompt.
Last edited by MarthaParkin (2016-05-22 15:48:15)
Offline
Does your computer have a USB Legacy mode that can be disabled in the setup screens?[1] https://en.wikipedia.org/wiki/Legacy_mode
It is a method that allows older machines to use USB keyboards without (or before) USB HID drivers are started. This is so that the keyboard can be used before the system boots.
If you have such an option turn it off
[1] Some people call this the BIOS set up, but for uefi machines, it is technically inaccurate to call it this
Edit: You might also try something along these lines http://unix.stackexchange.com/questions … usb-device
to force a re enumeration of the USB bus.
Last edited by ewaller (2016-05-22 16:10:08)
Nothing is too wonderful to be true, if it be consistent with the laws of nature -- Michael Faraday
Sometimes it is the people no one can imagine anything of who do the things no one can imagine. -- Alan Turing
---
How to Ask Questions the Smart Way
Offline
Edit: You might also try something along these lines http://unix.stackexchange.com/questions … usb-device
to force a re enumeration of the USB bus.
Good call thanks.
I will also be on the lookout for a program that will reprogram the keys since this keyboard isnt specifically made for desktop computing its default layout is quite random for typing so I need to reprogram it as I did in windows since the windows bindings apparently haven't passed over. It was supposedly a hardware firmware type of deal once you set the changes in the windows program but as I said somehow they were windows dependent.
Offline
Not sure what the error messages mean here they are:
usb 1-1.2: device descriptor read/64, error -110
This? This is that other device on port 2 of the internal hub, reported as "unknown device (descriptor read failure)" by Windows. Don't ask us what it is
Now to the interesting occurance... When I went to plug in the keyboard with the stock kernel loaded and pc already switched on by chance I pressed some buttons and it worked!
On unmodified kernel? Weird indeed. Maybe the hub reports correct number of ports, but only once after a power cycle. So normally only the BIOS gets to know the real number of ports, but if you connect later it's Linux. What appears in dmesg after successful connection on stock kernel?
If you want to know if key bindings are remembered in hardware, check if they transfer from one Windows machine to another or from Windows to BIOS.
Offline
Oh cool. I realised the keys are all still programmed as per windows it's just a case of language/locale settings differing I think. I just checked and it's the same on my arch vm in windows but when I use putty it uses my windows bindings rather than the vm/linux ones which is why I hadn't noticed it til now. Ok now I have something I can work with .
usb 1-1.2: device descriptor read/64, error -110
Yes that was the one I was refering to. It keeps spamming in the terminal though so how to supress it? I will need to silence the output somehow because I would like to install arch as my base install for my desktop and finally free myself from windows. I had been using a vm and puttying into arch till now due to these keyboard issues. So if Im using arch as the boot machine then these errror messages will still be popping up on the terminal every few seconds.
Can I just hide all those errors without having to use a patch? since this is simpler for future usage if I can make the keyboard work with just the power cycling thing mentioned above I won't have to repatch each time there is an update.
Ill reprint the output of lsusb after replugging the kb once I boot that system up again.
Last edited by MarthaParkin (2016-05-23 10:09:19)
Offline
]Can I just hide all those errors without having to use a patch?
you can use the kernel parameter loglevel for that.
see /usr/lib/modules/x.x.x-x-ARCH/build/Documentation/kernel-parameters.txt for details.
(replace the x'es with kernel package version)
Disliking systemd intensely, but not satisfied with alternatives so focusing on taming systemd.
(A works at time B) && (time C > time B ) ≠ (A works at time C)
Online
On unmodified kernel? Weird indeed.
Oh it was my mistake. I just noticed that the 1st mich41(tm) kernel compile is loading by default when booting not the stock kernel. Not sure how that happened. I just presumed at the time it was the stock one since I made no changes to make them persistent. But when I looked it was the first one. So it is a result of this hard work done in this thread . I went and rechecked since I made a fresh install on my laptop -different computer again from the one I'd been testing on previously- today and the keyboard didnt work when I plugged it in there which led me to suspect I was mistaken in my previous assumption.
Last edited by MarthaParkin (2016-05-24 19:44:36)
Offline
I copied the custom kernel just now to usb and when I am trying to install it on my laptop but Im getting error: missing packagae metadata and also invalid or corrupted package error for the headers package when I do pacman -U. Ideas?
Offline
I've only seen "invalid or corrupted..." when the system was not up to date, so some of the gpg keys were wrong.
Offline
MarthaParkin wrote:]Can I just hide all those errors without having to use a patch?
you can use the kernel parameter loglevel for that.
see /usr/lib/modules/x.x.x-x-ARCH/build/Documentation/kernel-parameters.txt for details.
(replace the x'es with kernel package version)
was about to look into this but there is no path as stated above.
I got to
]$ pwd
/usr/lib/modules/4.5.4-1-ARCH/build
and there is only vmlinux in there.
ah i see this is documented online to no need to refer to the non existent folder i guess.
Last edited by MarthaParkin (2016-05-30 21:09:52)
Offline
Alright! Turns out neither the loglevel or the powercycling stuff will not be needed after all.
I hadn't been bothering to stick around to see what would happen before but I happened to leave it switching on for a minute or so just now. What I noticed is that although the keyboard is unresponsive at boot it will cycle through that -110 errror 4 times then say
unable to enumerate USB device
At this point both the error messages cease and the keyboard becomes functional!
Wow that was a long haul but such a sweet reward at the end! I will now tentatively put this thread as solved.
Thanks all for all of your help. Couldn't have done it without ya! I'd like to thank my family, my agent and all my loyal fans.
What a great crash course in the strength of the open source community this thread has been .
Last edited by MarthaParkin (2016-05-30 22:18:01)
Offline
Hey guys, so after a year of using this same kernel I tried to repatch the new kernel and mich41's patch completed the build fine but the keyboard didn't work when I loaded arch.
The error message in dmesg was
[ 322.014781] usb 8-4: USB disconnect, device number 3
[ 324.074749] usb 8-3: new full-speed USB device number 4 using ohci-pci
[ 324.273651] hub 8-3:1.0: USB hub found
[ 324.275499] hub 8-3:1.0: config failed, can't read hub descriptor (err -90)
That was also the error message using the stock kernel so it wasn't related to the patch.
Anyone can advise which the problem might be now?
Last edited by MarthaParkin (2017-08-15 13:18:41)
Offline
Did you report the problem upstream?
R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K
Offline
Yes I did when originally making the thread. I exchanged a couple of emails (and the official reporter webpage thingy) with one of the devs though they never replied as to whether they were going to do anything about it or not, so I guess they didn't.
Last edited by MarthaParkin (2017-08-15 13:36:32)
Offline
They added some new correctness check which your keyboard fails. Use this patch instead:
--- a/drivers/usb/core/hub.c
+++ b/drivers/usb/core/hub.c
@@ -385,10 +385,6 @@ static int get_hub_descriptor(struct usb
if (ret == size)
return ret;
} else if (ret >= USB_DT_HUB_NONVAR_SIZE + 2) {
- /* Make sure we have the DeviceRemovable field. */
- size = USB_DT_HUB_NONVAR_SIZE + desc->bNbrPorts / 8 + 1;
- if (ret < size)
- return -EMSGSIZE;
return ret;
}
}
@@ -1343,9 +1339,7 @@ static int hub_configure(struct usb_hub
maxchild = min_t(unsigned, maxchild, USB_SS_MAXPORTS);
if (hub->descriptor->bNbrPorts > maxchild) {
- message = "hub has too many ports!";
- ret = -ENODEV;
- goto fail;
+ hub->descriptor->bNbrPorts = maxchild;
} else if (hub->descriptor->bNbrPorts == 0) {
message = "hub doesn't have any ports!";
ret = -ENODEV;
EDIT:
Maybe save a copy of the old one for now, I'm not sure what version we ultimately settled on.
Last edited by mich41 (2017-08-15 16:35:27)
Offline
I'd like to see that upstream bug report. Also if the bug report didn't get anywhere you could check which mailing to send an email and ask about this, it is in your best interest to get this fixed upstream, otherwise you will be here asking the same question again the next time you decide to update the kernel.
R00KIE
Tm90aGluZyB0byBzZWUgaGVyZSwgbW92ZSBhbG9uZy4K
Offline