LinuxQuestions.org
Visit Jeremy's Blog.
Home Forums Tutorials Articles Register
Go Back   LinuxQuestions.org > Forums > Linux Forums > Linux - Laptop and Netbook
User Name
Password
Linux - Laptop and Netbook Having a problem installing or configuring Linux on your laptop? Need help running Linux on your netbook? This forum is for you. This forum is for any topics relating to Linux and either traditional laptops or netbooks (such as the Asus EEE PC, Everex CloudBook or MSI Wind).

Notices


Reply
  Search this Thread
Old 06-19-2018, 10:44 AM   #1
kcaps
LQ Newbie
 
Registered: Jun 2018
Posts: 3

Rep: Reputation: Disabled
Touchpad not working at all in any distro on new lenovo laptop


Hey all.
I recently bought a new laptop with no OS installed (lenovo ideapad 330 15IKB), and installed the latest Fedora 28. Everything works perfectly, except for the touchpad which does not work at all and does not seem to be recognized by the system. I know it is not a hardware issue, since when I booted a live windows 10 usb, the touchpad worked perfectly even at the first screen of the installer (which I then canceled.)

Steps I have tried towards solving this on my own after many hours on google:

Installed various synaptics drivers (I don't even know if the touchpad is a synaptics one, but I couldn't find any elan specific, or any other specific ones)
Upgraded the linux kernel
Upgraded everything (sudo yum upgrade)
Booted with i8042.nopnp, i8042.noloop, i8042.reset, i8042.nomux
Installed various desktop environments (Gnome simply does not show any touchpad settings, KDE's touchpad settings tab has a red bar saying "no touchpad detected"
Pressed fn+f6
Searched in bios for a setting to enable PS/2 (could not find any setting even remotely related)
Blacklisted i2c_hid
Booted live usb's of Ubuntu and Linux Mint

Commands which may shed some light to someone more knowledgeable than myself:

Code:
[kobi@lenovo-330 ~]$ uname -a
Linux lenovo-330 4.16.15-300.fc28.x86_64 #1 SMP Tue Jun 12 00:42:35 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux
With usb mouse connected:
Code:
[kobi@lenovo-330 ~]$ xinput
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ Logitech USB Receiver                     id=9    [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Video Bus                                 id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ Logitech USB Receiver                     id=8    [slave  keyboard (3)]
    ↳ EasyCamera: EasyCamera                    id=10   [slave  keyboard (3)]
    ↳ Ideapad extra buttons                     id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]
    ↳ Logitech USB Receiver                     id=13   [slave  keyboard (3)]
Without the usb mouse:
Code:
[kobi@lenovo-330 ~]$ xinput
⎡ Virtual core pointer                          id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎣ Virtual core keyboard                         id=3    [master keyboard (2)]
    ↳ Virtual core XTEST keyboard               id=5    [slave  keyboard (3)]
    ↳ Video Bus                                 id=6    [slave  keyboard (3)]
    ↳ Power Button                              id=7    [slave  keyboard (3)]
    ↳ EasyCamera: EasyCamera                    id=10   [slave  keyboard (3)]
    ↳ Ideapad extra buttons                     id=11   [slave  keyboard (3)]
    ↳ AT Translated Set 2 keyboard              id=12   [slave  keyboard (3)]
Code:
[kobi@lenovo-330 ~]$ sudo libinput list-devices                         
[sudo] password for kobi: 
Device:           Video Bus
Kernel:           /dev/input/event5
Group:            1
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Power Button
Kernel:           /dev/input/event1
Group:            2
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Lid Switch
Kernel:           /dev/input/event0
Group:            3
Seat:             seat0, default
Capabilities:     switch
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Logitech USB Receiver
Kernel:           /dev/input/event3
Group:            4
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Logitech USB Receiver
Kernel:           /dev/input/event4
Group:            4
Seat:             seat0, default
Capabilities:     keyboard pointer 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      disabled
Nat.scrolling:    disabled
Middle emulation: disabled
Calibration:      n/a
Scroll methods:   button
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   flat *adaptive
Rotation:         n/a

Device:           EasyCamera: EasyCamera
Kernel:           /dev/input/event7
Group:            5
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           Ideapad extra buttons
Kernel:           /dev/input/event6
Group:            6
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           HDA Intel PCH Mic
Kernel:           /dev/input/event8
Group:            7
Seat:             seat0, default
Capabilities:     
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           HDA Intel PCH Headphone
Kernel:           /dev/input/event9
Group:            7
Seat:             seat0, default
Capabilities:     
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           HDA Intel PCH HDMI/DP,pcm=3
Kernel:           /dev/input/event10
Group:            7
Seat:             seat0, default
Capabilities:     
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           HDA Intel PCH HDMI/DP,pcm=7
Kernel:           /dev/input/event11
Group:            7
Seat:             seat0, default
Capabilities:     
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           HDA Intel PCH HDMI/DP,pcm=8
Kernel:           /dev/input/event12
Group:            7
Seat:             seat0, default
Capabilities:     
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           HDA Intel PCH HDMI/DP,pcm=9
Kernel:           /dev/input/event13
Group:            7
Seat:             seat0, default
Capabilities:     
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           HDA Intel PCH HDMI/DP,pcm=10
Kernel:           /dev/input/event14
Group:            7
Seat:             seat0, default
Capabilities:     
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a

Device:           AT Translated Set 2 keyboard
Kernel:           /dev/input/event2
Group:            8
Seat:             seat0, default
Capabilities:     keyboard 
Tap-to-click:     n/a
Tap-and-drag:     n/a
Tap drag lock:    n/a
Left-handed:      n/a
Nat.scrolling:    n/a
Middle emulation: n/a
Calibration:      n/a
Scroll methods:   none
Click methods:    none
Disable-w-typing: n/a
Accel profiles:   n/a
Rotation:         n/a
Code:
[kobi@lenovo-330 ~]$ cat /proc/bus/input/devices 
I: Bus=0019 Vendor=0000 Product=0005 Version=0000
N: Name="Lid Switch"
P: Phys=PNP0C0D/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0D:00/input/input0
U: Uniq=
H: Handlers=event0 
B: PROP=0
B: EV=21
B: SW=1

I: Bus=0019 Vendor=0000 Product=0001 Version=0000
N: Name="Power Button"
P: Phys=PNP0C0C/button/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0C0C:00/input/input1
U: Uniq=
H: Handlers=kbd event1 
B: PROP=0
B: EV=3
B: KEY=10000000000000 0

I: Bus=0011 Vendor=0001 Product=0001 Version=ab83
N: Name="AT Translated Set 2 keyboard"
P: Phys=isa0060/serio0/input0
S: Sysfs=/devices/platform/i8042/serio0/input/input2
U: Uniq=
H: Handlers=sysrq kbd leds event2 
B: PROP=0
B: EV=120013
B: KEY=402000000 3803078f800d001 feffffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=7

I: Bus=0003 Vendor=046d Product=c534 Version=0111
N: Name="Logitech USB Receiver"
P: Phys=usb-0000:00:14.0-1/input0
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.0/0003:046D:C534.0001/input/input5
U: Uniq=
H: Handlers=sysrq kbd leds event3 
B: PROP=0
B: EV=120013
B: KEY=1000000000007 ff800000000007ff febeffdfffefffff fffffffffffffffe
B: MSC=10
B: LED=1f

I: Bus=0003 Vendor=046d Product=c534 Version=0111
N: Name="Logitech USB Receiver"
P: Phys=usb-0000:00:14.0-1/input1
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-1/1-1:1.1/0003:046D:C534.0002/input/input6
U: Uniq=
H: Handlers=kbd mouse0 event4 
B: PROP=0
B: EV=1f
B: KEY=3007f 0 0 483ffff17aff32d bf54444600000000 ffff0001 130f938b17c000 677bfad941dfed 9ed68000004400 10000002
B: REL=1c3
B: ABS=100000000
B: MSC=10

I: Bus=0019 Vendor=0000 Product=0006 Version=0000
N: Name="Video Bus"
P: Phys=LNXVIDEO/video/input0
S: Sysfs=/devices/LNXSYSTM:00/LNXSYBUS:00/PNP0A08:00/LNXVIDEO:00/input/input7
U: Uniq=
H: Handlers=kbd event5 
B: PROP=0
B: EV=3
B: KEY=3e000b00000000 0 0 0

I: Bus=0019 Vendor=0000 Product=0000 Version=0000
N: Name="Ideapad extra buttons"
P: Phys=ideapad/input0
S: Sysfs=/devices/pci0000:00/0000:00:1f.0/PNP0C09:00/VPC2004:00/input/input8
U: Uniq=
H: Handlers=kbd event6 rfkill 
B: PROP=0
B: EV=13
B: KEY=81000800100c03 4400000000300000 0 2
B: MSC=10

I: Bus=0003 Vendor=5986 Product=210f Version=5318
N: Name="EasyCamera: EasyCamera"
P: Phys=usb-0000:00:14.0-8/button
S: Sysfs=/devices/pci0000:00/0000:00:14.0/usb1/1-8/1-8:1.0/input/input9
U: Uniq=
H: Handlers=kbd event7 
B: PROP=0
B: EV=3
B: KEY=100000 0 0 0

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Mic"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input10
U: Uniq=
H: Handlers=event8 
B: PROP=0
B: EV=21
B: SW=10

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH Headphone"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input11
U: Uniq=
H: Handlers=event9 
B: PROP=0
B: EV=21
B: SW=4

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=3"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input12
U: Uniq=
H: Handlers=event10 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=7"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input13
U: Uniq=
H: Handlers=event11 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=8"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input14
U: Uniq=
H: Handlers=event12 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=9"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input15
U: Uniq=
H: Handlers=event13 
B: PROP=0
B: EV=21
B: SW=140

I: Bus=0000 Vendor=0000 Product=0000 Version=0000
N: Name="HDA Intel PCH HDMI/DP,pcm=10"
P: Phys=ALSA
S: Sysfs=/devices/pci0000:00/0000:00:1f.3/sound/card0/input16
U: Uniq=
H: Handlers=event14 
B: PROP=0
B: EV=21
B: SW=140
Booting with no i8042 kernel parameters:
(this is the same message, copied from another thread, not from my laptop. I'm currently booted with those options so I can't paste my own)
Code:
dmesg | grep i8042
[    0.919630] i8042: PNP: PS/2 Controller [PNP0303:PS2K] at 0x60,0x64 irq 182
[    0.919632] i8042: PNP: PS/2 appears to have AUX port disabled, if this is incorrect please boot with i8042.nopnp
Booting with the parameters mentioned above:
Code:
[kobi@lenovo-330 ~]$ dmesg | grep i8042
[    0.000000] Command line: BOOT_IMAGE=/vmlinuz-4.16.15-300.fc28.x86_64 root=/dev/mapper/fedora_localhost--live-root ro resume=/dev/mapper/fedora_localhost--live-swap rd.lvm.lv=fedora_localhost-live/root rd.lvm.lv=fedora_localhost-live/swap rhgb quiet LANG=en_US.UTF-8 i8042.nopnp i8042.noloop i8042.reset i8042.nomux
[    0.000000] Kernel command line: BOOT_IMAGE=/vmlinuz-4.16.15-300.fc28.x86_64 root=/dev/mapper/fedora_localhost--live-root ro resume=/dev/mapper/fedora_localhost--live-swap rd.lvm.lv=fedora_localhost-live/root rd.lvm.lv=fedora_localhost-live/swap rhgb quiet LANG=en_US.UTF-8 i8042.nopnp i8042.noloop i8042.reset i8042.nomux
[    0.907894] i8042: PNP detection disabled
[    0.952786] serio: i8042 KBD port at 0x60,0x64 irq 1
[    0.952792] serio: i8042 AUX port at 0x60,0x64 irq 12
[    0.963531] input: AT Translated Set 2 keyboard as /devices/platform/i8042/serio0/input/input2

Lenovo's support website offers touchpad drivers to download, but only for windows.
I have reached a solid brick wall here, I'm willing to do anything but install windows to get this working, under any distro, though obviously I would rather get it working under my current installation.
I'd really appreciate any help!
 
Old 06-20-2018, 08:00 PM   #2
frankbell
LQ Guru
 
Registered: Jan 2006
Location: Virginia, USA
Distribution: Slackware, Ubuntu MATE, Mageia, and whatever VMs I happen to be playing with
Posts: 19,321
Blog Entries: 28

Rep: Reputation: 6141Reputation: 6141Reputation: 6141Reputation: 6141Reputation: 6141Reputation: 6141Reputation: 6141Reputation: 6141Reputation: 6141Reputation: 6141Reputation: 6141
You may find this link helpful; it provide pointers as to how to verify that the touchpad is detected. https://help.ubuntu.com/community/Sy..._been_detected

If the laptop is new, it's entirely possible that the touchpad is so new that it is not yet supported in the Linux kernel.

Let us know what you find.
 
Old 07-09-2018, 06:21 AM   #3
kcaps
LQ Newbie
 
Registered: Jun 2018
Posts: 3

Original Poster
Rep: Reputation: Disabled
I've been upgrading the kernel every once in a while, to no change until this last time. (4.17.3-200.fc28.x86_64)
Now, every time I boot or wake after suspend, I get a popup saying "Touchpad is off". Everything else is exactly the same though, not showing in xinput or libinput or KDE settings.
 
Old 07-09-2018, 08:56 AM   #4
fatmac
LQ Guru
 
Registered: Sep 2011
Location: Upper Hale, Surrey/Hants Border, UK
Distribution: Mainly Devuan, antiX, & Void, with Tiny Core, Fatdog, & BSD thrown in.
Posts: 5,487

Rep: Reputation: Disabled
In your dmesg output you should find the name of your touchpad, then check online to see if the kernel maintainers have written a driver for it - probably not if your laptop is less than 6 months old from release, these things take time, & some one needs the specific touchpad to be able to write the code for it. Meanwhile, just use a USB mouse with it, & keep checking.
 
Old 07-22-2018, 10:05 PM   #5
mrapathy
Member
 
Registered: Nov 2005
Distribution: Slackware,Debian
Posts: 366

Rep: Reputation: 66
might want to see if you have bios settings for the touchpad. my acer had advanced and simple setting. when I boot kde on advanced setting the touchpad stops working. I dont like the touchpad on my acer so I bought a cheap logitech wireless usb mouse for $13.
 
Old 07-25-2018, 04:15 AM   #6
AwesomeMachine
LQ Guru
 
Registered: Jan 2005
Location: USA and Italy
Distribution: Debian testing/sid; OpenSuSE; Fedora; Mint
Posts: 5,524

Rep: Reputation: 1015Reputation: 1015Reputation: 1015Reputation: 1015Reputation: 1015Reputation: 1015Reputation: 1015Reputation: 1015
Try this command:
Code:
 $ less /proc/bus/input/devices | grep -i touch
and then google for the Linux driver.
 
Old 07-29-2018, 03:29 PM   #7
bbaker6212
Member
 
Registered: Jul 2016
Posts: 56

Rep: Reputation: Disabled
Quote:
Originally Posted by fatmac View Post
In your dmesg output you should find the name of your touchpad, then check online to see if the kernel maintainers have written a driver for it - probably not if your laptop is less than 6 months old from release, these things take time, & some one needs the specific touchpad to be able to write the code for it. Meanwhile, just use a USB mouse with it, & keep checking.
It's a known/identified problem for the Lenovo Ideapad 330 and a patch can be fairly easily made until it gets rolled into a kernel release.
https://forum.manjaro.org/t/lenovo-i...rking/50764/12
 
Old 08-30-2018, 04:13 AM   #8
kcaps
LQ Newbie
 
Registered: Jun 2018
Posts: 3

Original Poster
Rep: Reputation: Disabled
Finally kernel update 4.17.12-200.fc28.x86_64 has fixed it!
It's not perfect, and a lot of settings in the kde touchpad settings are greyed out, but at lelast now it works. I googled the greyed out problem, someone said it was aso a driver issue, so I'm kind of afraid to touch it now that it works..
 
  


Reply



Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is Off
HTML code is Off



Similar Threads
Thread Thread Starter Forum Replies Last Post
Fedora 27 on Lenovo Thinpad: Touchpad stopped working nesbit12 Linux - Laptop and Netbook 17 05-29-2018 10:32 AM
Keypad and Touchpad not working on Lenovo 3000 Y 500 notebook divymohanshorey Linux - Laptop and Netbook 3 06-11-2010 02:05 PM
LENOVO TOUCHPAD is not working in FEDORA 12 dazzyrock Linux - Newbie 4 05-08-2010 07:08 AM
PCLiuxOS not detecting touchpad ,soundcard,and wireless adapter of lenovo laptop aqeel Linux - Laptop and Netbook 3 09-02-2007 03:24 PM

LinuxQuestions.org > Forums > Linux Forums > Linux - Laptop and Netbook

All times are GMT -5. The time now is 08:05 PM.

Main Menu
Advertisement
My LQ
Write for LQ
LinuxQuestions.org is looking for people interested in writing Editorials, Articles, Reviews, and more. If you'd like to contribute content, let us know.
Main Menu
Syndicate
RSS1  Latest Threads
RSS1  LQ News
Twitter: @linuxquestions
Open Source Consulting | Domain Registration