n67
Posts: 938
Joined: Mon Oct 30, 2017 4:55 pm

Major breakage on latest Stretch upgrade (GUI broken)

Fri May 04, 2018 9:48 am

Just did "update/dist-upgrade" on my one Stretch Pi. upgrade showed that new kernel and new "raspberrypi-ui-mods" (or something close to that) was being installed, so I knew a reboot would be needed.

After reboot, the GUI failed to load. Specifically, it came up to a password prompt (GUI login box), which it had never done before (everything was working just fine before the upgrade). When I put in the password, it chugged for a bit, then cleared the screen to black, then chugged some more, then put up the password box again. Rinse, lather, repeat.

Was able to Ctrl/Alt/F1 to get to a text console, did raspi-config, changed Boot Option to boot to CLI (password required - i.e., no autologin). Rebooted, got to text login and did "startx". Result is as shown below:
raspi2 login: pi
Password:
Last login: Fri May 4 05:23:24 EDT 2018 on tty1
Linux raspi2 4.14.34+ #1110 Mon Apr 16 14:51:42 BST 2018 armv6l

The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.

Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
/dev/tty2 [email protected]:~ $ startx


X.Org X Server 1.19.2
Release Date: 2017-03-02
X Protocol Version 11, Revision 0
Build Operating System: Linux 4.9.41-v7+ armv7l Raspbian
Current Operating System: Linux raspi2 4.14.34+ #1110 Mon Apr 16 14:51:42 BST 2018 armv6l
Kernel command line: bcm2708_fb.fbwidth=1920 bcm2708_fb.fbheight=1080 bcm2708_fb.fbswap=1 vc_mem.mem_base=0x1ec00000 vc_mem.mem_size=0x20000000 dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=PARTUUID=8574cbb8-02 rootfstype=e
xt4 elevator=deadline fsck.repair=yes rootwait quiet splash plymouth.ignore-serial-consoles
Build Date: 18 October 2017 04:55:30PM
xorg-server 2:1.19.2-1+rpt1+deb9u2 (https://www.debian.org/support)
Current version of pixman: 0.34.0
Before reporting problems, check http://wiki.x.org
to make sure that you have the latest version.
Markers: (--) probed, (**) from config file, (==) default setting,
(++) from command line, (!!) notice, (II) informational,
(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/home/pi/.local/share/xorg/Xorg.0.log", Time: Fri May 4 05:24:35 2018
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
modprobe: FATAL: Module g2d_23 not found in directory /lib/modules/4.14.34+
xinit: connection to X server lost

waiting for X server to shut down (II) Server terminated successfully (0). Closing log file.

/dev/tty2 [email protected]:~ $ df
Filesystem 1K-blocks Used Available Use% Mounted on
========== ========= ==== ========= ==== ======= ==
1 devtmpfs 217632 0 217632 0% /dev
2 tmpfs 221948 0 221948 0% /dev/shm
3 tmpfs 221948 3560 218388 2% /run
4 tmpfs 5120 4 5116 1% /run/lock
5 tmpfs 44388 0 44388 0% /run/user/1000
6 tmpfs 221948 0 221948 0% /sys/fs/cgroup
7 /dev/mmcblk0p1 41853 22137 19716 53% /boot
8 /dev/root 7530028 4739956 2421216 67% /
/dev/tty2 [email protected]:~ $ locate g2d_23
/dev/tty2 [email protected]:~ $
Note that disk space is fine (a common bugaboo when X fails). But no sign of anything called g2d_23.

System seems otherwise OK - just the GUI is borken (sic).

Also note, for nitpickers - the output of df is a little different - I have an alias that pretties it up a bit. Nothing to worry about.

How to fix?


Note: The question "How to fix?" is, obviously, about the main problem - the breakage caused by the latest "upgrade". It is obviously not about "fixing" the "df" alias,

[Mod: edited out some snark. Don't let it happen again]
Last edited by n67 on Fri May 04, 2018 11:49 am, edited 1 time in total.
"L'enfer, c'est les autres"

G fytc hsqr rum umpbq rm qyw rm rfc kmbq md rfgq dmpsk:

Epmu Sn!

J lnacjrw njbruh-carppnanm vxm rb mnuncrwp vh yxbcb!

n67
Posts: 938
Joined: Mon Oct 30, 2017 4:55 pm

Re: Major breakage on latest Stretch upgrade (GUI broken)

Fri May 04, 2018 9:49 am

Oh, and also wanted to mention that this was a fresh/clean install of Stretch - not an upgrade from earlier version. Original install was a month or so ago.
"L'enfer, c'est les autres"

G fytc hsqr rum umpbq rm qyw rm rfc kmbq md rfgq dmpsk:

Epmu Sn!

J lnacjrw njbruh-carppnanm vxm rb mnuncrwp vh yxbcb!

User avatar
PeterO
Posts: 5142
Joined: Sun Jul 22, 2012 4:14 pm

Re: Major breakage on latest Stretch upgrade (GUI broken)

Fri May 04, 2018 10:55 am

n67 wrote:
Fri May 04, 2018 9:48 am
Also note, for nitpickers - the output of df is a little different - I have an alias that pretties it up a bit. Nothing to worry about.
How to fix?
Include -h in your alias so as well as being "pretty" it is also useful.

PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

User avatar
Paeryn
Posts: 2745
Joined: Wed Nov 23, 2011 1:10 am
Location: Sheffield, England

Re: Major breakage on latest Stretch upgrade (GUI broken)

Fri May 04, 2018 4:56 pm

I don't think not finding g2d_23 is anything to go by, it's never been there AFAIK and should be a harmless message unless the driver that requests it is now preventing X from starting.
She who travels light — forgot something.

User avatar
bensimmo
Posts: 4187
Joined: Sun Dec 28, 2014 3:02 pm
Location: East Yorkshire

Re: Major breakage on latest Stretch upgrade (GUI broken)

Fri May 04, 2018 5:49 pm

anything in that log file, plenty here thinking it could be fbturbo.

viewtopic.php?t=67334

as a side, mine updated fine, as a check.

User avatar
PeterO
Posts: 5142
Joined: Sun Jul 22, 2012 4:14 pm

Re: Major breakage on latest Stretch upgrade (GUI broken)

Fri May 04, 2018 6:45 pm

There seems to be something non-standard in your X configuration .
Compare the loging configuration in your log file

Code: Select all

(WW) warning, (EE) error, (NI) not implemented, (??) unknown.
(==) Log file: "/home/pi/.local/share/xorg/Xorg.0.log", Time: Fri May 4 05:24:35 2018
(==) Using system config directory "/usr/share/X11/xorg.conf.d"
with mine (from an upgraded but not dist-upgraded Stretch).

Code: Select all

       (WW) warning, (EE) error, (NI) not implemented, (??) unknown.
[    22.857] (==) Log file: "/var/log/Xorg.0.log", Time: Thu May  3 17:49:11 2018
[    22.870] (==) Using system config directory "/usr/share/X11/xorg.conf.d"
fbturbo seems to load fine on mine..

Code: Select all

[    23.375] (II) FBTURBO(0): using /dev/fb0
[    23.375] (WW) VGA arbiter: cannot open kernel arbiter, no multi-card support
[    23.375] (II) FBTURBO(0): Creating default Display subsection in Screen section
        "Default Screen Section" for depth/fbbpp 24/32
[    23.375] (==) FBTURBO(0): Depth 24, (==) framebuffer bpp 32
[    23.375] (==) FBTURBO(0): RGB weight 888
[    23.375] (==) FBTURBO(0): Default visual is TrueColor
[    23.375] (==) FBTURBO(0): Using gamma correction (1.0, 1.0, 1.0)
[    23.375] (II) FBTURBO(0): hardware: BCM2708 FB (video memory: 8100kB)
[    23.375] (**) FBTURBO(0): Option "fbdev" "/dev/fb0"
[    23.376] (**) FBTURBO(0): Option "SwapbuffersWait" "true"
[    23.376] (II) FBTURBO(0): processor: Unknown
[    23.376] (II) FBTURBO(0): checking modes against framebuffer device...
[    23.376] (II) FBTURBO(0): checking modes against monitor...
[    23.376] (--) FBTURBO(0): Virtual size is 1920x1080 (pitch 1920)
[    23.376] (**) FBTURBO(0):  Built-in mode "current"
[    23.376] (==) FBTURBO(0): DPI set to (96, 96)
[    23.376] (II) Loading sub module "fb"
[    23.376] (II) LoadModule: "fb"
[    23.376] (II) Loading /usr/lib/xorg/modules/libfb.so

Yours fails with

Code: Select all

(==) Using system config directory "/usr/share/X11/xorg.conf.d"
modprobe: FATAL: Module g2d_23 not found in directory /lib/modules/4.14.34+
where as mine just complains much later in the log file......

Code: Select all

[    23.403] (II) FBTURBO(0): using backing store heuristics
[    23.408] (II) FBTURBO(0): can't load 'g2d_23' kernel module

Maybe there is something else that changed in the X configuration that has broken your system ?
PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

n67
Posts: 938
Joined: Mon Oct 30, 2017 4:55 pm

Re: Major breakage on latest Stretch upgrade (GUI broken)

Fri May 04, 2018 8:05 pm

Maybe there is something else that changed in the X configuration that has broken your system ?
From the upgrade. Sooner or later, someone in authority will figure out what happened.
"L'enfer, c'est les autres"

G fytc hsqr rum umpbq rm qyw rm rfc kmbq md rfgq dmpsk:

Epmu Sn!

J lnacjrw njbruh-carppnanm vxm rb mnuncrwp vh yxbcb!

User avatar
PeterO
Posts: 5142
Joined: Sun Jul 22, 2012 4:14 pm

Re: Major breakage on latest Stretch upgrade (GUI broken)

Fri May 04, 2018 9:01 pm

n67 wrote:
Fri May 04, 2018 8:05 pm
Maybe there is something else that changed in the X configuration that has broken your system ?
From the upgrade. Sooner or later, someone in authority will figure out what happened.
So the rational reply would have been to post your X configuration so that someone could compare it to see what was different... But making some sarcastic comment was obviously easier.

PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

d_older
Posts: 119
Joined: Mon Jun 25, 2012 5:04 pm
Location: East Yorkshire, UK

Re: Major breakage on latest Stretch upgrade (GUI broken)

Fri May 04, 2018 9:52 pm

Hi n67,

have you looked in /home/pi/.local/share/xorg/Xorg.0.log to see if anything else looks suspicious (as your screen shows - the location of the log files is under .local for a clean, user based xorg that came with debian 9)

I've just updated a 2018-04-18-raspbian-stretch install (last updated a couple of days ago) albeit on a zero and that launches X normally. Unfortunately as it launches on tty1 you have to exit X to see the displayed starting messages and that seems to suppress just about all the start up messages - I only had the (normal) shutting down line after

Code: Select all

(==) Using system config directory "/usr/share/X11/xorg.conf.d"
whereas the log file has all the messages one would expect - including

Code: Select all

[   245.734]  (WW) LoadKernelModule: Setting of real/effective user Id to 0/0 failed[   245.748] (II) FBTURBO(0): can't load 'g2d_23' kernel module
interesting as one line in the log.

Don't know if this helps.

Dave

User avatar
PeterO
Posts: 5142
Joined: Sun Jul 22, 2012 4:14 pm

Re: Major breakage on latest Stretch upgrade (GUI broken)

Fri May 04, 2018 10:24 pm

n67,
I just did a fresh Stretch install, followed by apt update and apt dist-upgrade, and GUI is working just fine.
Are you sure you didn't do anything to the system since you installed it ?
Which release did you start with ?
I have zip file for 2018-03-13 if that was your starting point.

PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

User avatar
PeterO
Posts: 5142
Joined: Sun Jul 22, 2012 4:14 pm

Re: Major breakage on latest Stretch upgrade (GUI broken)

Sat May 05, 2018 7:08 am

And same result starting from 2018-03-13.
Installed, updated, dist-upgraded and no "Major breakage" observed.
If it isn't reproducible no one is going to be able to fix it for you . :roll:
PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

n67
Posts: 938
Joined: Mon Oct 30, 2017 4:55 pm

Re: Major breakage on latest Stretch upgrade (GUI broken)

Sat May 05, 2018 7:17 pm

Well, I figured this out. It was, of course, caused by the "upgrade", but I guess that's neither here nor there, in the final analysis. It'd be nice of course if the maintainers of raspberrypi-ui-mods were more careful, but so it goes...

Anyway, the problem is that the launch process for the GUI sources, at some point, the users (i.e, pi's) .profile. So, if you do anything non-trivial in your .profile (as I do), breakage can result.

The solution that I worked out is to put this line before any "non-trivial" stuff in .profile:

Code: Select all

tty > /dev/null || return
because when this gets sourced by the GUI startup code, there is no controlling tty.

BTW, I've hit this same problem running XQuartz on OSX. It also sources the .profile and if there's something in there it doesn't like, it (as on the Pi) just mysteriously blows up with no indication of how/what/where it went wrong.

Anyway, hoping someone in authority will see this and fix it in the mainstream.
"L'enfer, c'est les autres"

G fytc hsqr rum umpbq rm qyw rm rfc kmbq md rfgq dmpsk:

Epmu Sn!

J lnacjrw njbruh-carppnanm vxm rb mnuncrwp vh yxbcb!

User avatar
PeterO
Posts: 5142
Joined: Sun Jul 22, 2012 4:14 pm

Re: Major breakage on latest Stretch upgrade (GUI broken)

Sat May 05, 2018 7:47 pm

n67 wrote:
Sat May 05, 2018 7:17 pm
Well, I figured this out. It was, of course, caused by the "upgrade", but I guess that's neither here nor there, in the final analysis. It'd be nice of course if the maintainers of raspberrypi-ui-mods were more careful, but so it goes...

Anyway, the problem is that the launch process for the GUI sources, at some point, the users (i.e, pi's) .profile. So, if you do anything non-trivial in your .profile (as I do), breakage can result.

The solution that I worked out is to put this line before any "non-trivial" stuff in .profile:

Code: Select all

tty > /dev/null || return
because when this gets sourced by the GUI startup code, there is no controlling tty.

BTW, I've hit this same problem running XQuartz on OSX. It also sources the .profile and if there's something in there it doesn't like, it (as on the Pi) just mysteriously blows up with no indication of how/what/where it went wrong.

Anyway, hoping someone in authority will see this and fix it in the mainstream.
How will they fix it when once again you've kept important information (i.e. the contents of your .profile file) to yourself ?
PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

n67
Posts: 938
Joined: Mon Oct 30, 2017 4:55 pm

Re: Major breakage on latest Stretch upgrade (GUI broken)

Sun May 06, 2018 5:17 am

Those details are irrelevant - but the authorities can certainly get in touch with me if they need to.

The point is that the solution should be agnostic w.r.t. the actual contents of a user's .profile.

Off-hand, and without thinking about it much, I can think of 3 easy solutions, presented here in increasing order of "severity":

1) Put text (i.e., as comments) into the default .profile to the effect of "Beware: This file is used by the GUI (desktop system), so if you make changes here and your GUI stops working - you might want to back out those changes..."

2) Actually put the "tty || return" line into the default .profile, with text (i.e., comments) to the effect of "Do not edit above this line". I.e., it would be setup so that the user stuff should only go after that line. Note that this is fairly common in various config files that you see around Unix/Linux systems - notes to the effect that the user is not supposed to edit the sections of a file that are either machine-generated or upon which the system depends on finding in a specific format.

3) Realize that the system GUI should not be dependent on the user's .profile. Or, to put it another way, as things stand now, it (the GUI) is (in some sense) dependent on the user's .profile being in the factory default condition, which is not a good situation. Therefore it should not be sourcing that file at all. Instead, the leadup to launching the GUI should be sourcing some other version of the file to get the settings; that "other version" would be kept in pristine condition outside of the user's view. In fact, one could argue that it is a "security risk" - in any of many senses of that phrase - for it to be sourcing the user's file.

A couple of additional notes:

1) This sort of thing - where the user makes (reasonable) changes to his startup/config files that causes system software to fail - is not uncommon in Unix systems. I've run into it many times over the years. For example (And, yes, this is another example from left field), certain kinds of system software blow up badly if you change your "umask" from the default (i.e., from what the software expects it to be).

2) Another point regarding the above "list of 3" is that it should be more obvious what's going on - i.e., when the GUI just blows up. This same problem happened to another poster (see a thread titled something like "Can't login in"); it is very mysterious when this sort of thing happens.
"L'enfer, c'est les autres"

G fytc hsqr rum umpbq rm qyw rm rfc kmbq md rfgq dmpsk:

Epmu Sn!

J lnacjrw njbruh-carppnanm vxm rb mnuncrwp vh yxbcb!

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 24157
Joined: Sat Jul 30, 2011 7:41 pm

Re: Major breakage on latest Stretch upgrade (GUI broken)

Sun May 06, 2018 7:30 am

n67 wrote:
Sun May 06, 2018 5:17 am
Those details are irrelevant - but the authorities can certainly get in touch with me if they need to.

The point is that the solution should be agnostic w.r.t. the actual contents of a user's .profile.

Off-hand, and without thinking about it much, I can think of 3 easy solutions, presented here in increasing order of "severity":

1) Put text (i.e., as comments) into the default .profile to the effect of "Beware: This file is used by the GUI (desktop system), so if you make changes here and your GUI stops working - you might want to back out those changes..."

2) Actually put the "tty || return" line into the default .profile, with text (i.e., comments) to the effect of "Do not edit above this line". I.e., it would be setup so that the user stuff should only go after that line. Note that this is fairly common in various config files that you see around Unix/Linux systems - notes to the effect that the user is not supposed to edit the sections of a file that are either machine-generated or upon which the system depends on finding in a specific format.

3) Realize that the system GUI should not be dependent on the user's .profile. Or, to put it another way, as things stand now, it (the GUI) is (in some sense) dependent on the user's .profile being in the factory default condition, which is not a good situation. Therefore it should not be sourcing that file at all. Instead, the leadup to launching the GUI should be sourcing some other version of the file to get the settings; that "other version" would be kept in pristine condition outside of the user's view. In fact, one could argue that it is a "security risk" - in any of many senses of that phrase - for it to be sourcing the user's file.

A couple of additional notes:

1) This sort of thing - where the user makes (reasonable) changes to his startup/config files that causes system software to fail - is not uncommon in Unix systems. I've run into it many times over the years. For example (And, yes, this is another example from left field), certain kinds of system software blow up badly if you change your "umask" from the default (i.e., from what the software expects it to be).

2) Another point regarding the above "list of 3" is that it should be more obvious what's going on - i.e., when the GUI just blows up. This same problem happened to another poster (see a thread titled something like "Can't login in"); it is very mysterious when this sort of thing happens.
Welcome to the world of complicated software.

Sometimes, stuff happens which the designers did not/could not cater for.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
“I think it’s wrong that only one company makes the game Monopoly.” – Steven Wright

User avatar
PeterO
Posts: 5142
Joined: Sun Jul 22, 2012 4:14 pm

Re: Major breakage on latest Stretch upgrade (GUI broken)

Sun May 06, 2018 8:07 am

n67 wrote:
Sun May 06, 2018 5:17 am
Those details are irrelevant - but the authorities can certainly get in touch with me if they need to.
Do you take some kind of pleasure in making it hard for people to help you ?
Do you do this just so that you can come along and proclaim "I've fixed it without anyone else's help." ?

And now you tell us that you already knew about the potential problems of putting inappropriate contents in a .profile file, yet you continue to do it (even telling us you've had problems on other systems), but not for one minute does it cross your mind that maybe the cause of the repeated problems is that you are in some way misusing the .profile file ? Did you consider that maybe your changes had broken your system before the update, but just not is a way that triggered a problem ?

And you flatly refuse to to show us the contents of the file, (which would help to answer some of these questions and clarify the situation) maybe because it would show the real cause of the problem is something you have done.

PeterO
Discoverer of the PI2 XENON DEATH FLASH!
Interests: C,Python,PIC,Electronics,Ham Radio (G0DZB),1960s British Computers.
"The primary requirement (as we've always seen in your examples) is that the code is readable. " Dougie Lawson

n67
Posts: 938
Joined: Mon Oct 30, 2017 4:55 pm

Re: Major breakage on latest Stretch upgrade (GUI broken)

Sun May 06, 2018 10:24 am

Wow.

Just wow.
"L'enfer, c'est les autres"

G fytc hsqr rum umpbq rm qyw rm rfc kmbq md rfgq dmpsk:

Epmu Sn!

J lnacjrw njbruh-carppnanm vxm rb mnuncrwp vh yxbcb!

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 24157
Joined: Sat Jul 30, 2011 7:41 pm

Re: Major breakage on latest Stretch upgrade (GUI broken)

Sun May 06, 2018 8:01 pm

n67 wrote:
Sun May 06, 2018 10:24 am
Wow.

Just wow.
Wow.

Just wow.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
“I think it’s wrong that only one company makes the game Monopoly.” – Steven Wright

n67
Posts: 938
Joined: Mon Oct 30, 2017 4:55 pm

Re: Major breakage on latest Stretch upgrade (GUI broken)

Sun May 06, 2018 10:35 pm

jamesh wrote:
Sun May 06, 2018 8:01 pm
n67 wrote:
Sun May 06, 2018 10:24 am
Wow.

Just wow.
Wow.

Just wow.
For what it is worth, my sense is that you (jamesh) get it.

But that other poster is completely clueless.

Anyway, I think this thread has run its course.
"L'enfer, c'est les autres"

G fytc hsqr rum umpbq rm qyw rm rfc kmbq md rfgq dmpsk:

Epmu Sn!

J lnacjrw njbruh-carppnanm vxm rb mnuncrwp vh yxbcb!

jamesh
Raspberry Pi Engineer & Forum Moderator
Raspberry Pi Engineer & Forum Moderator
Posts: 24157
Joined: Sat Jul 30, 2011 7:41 pm

Re: Major breakage on latest Stretch upgrade (GUI broken)

Mon May 07, 2018 7:28 am

n67 wrote:
Sun May 06, 2018 10:35 pm
jamesh wrote:
Sun May 06, 2018 8:01 pm
n67 wrote:
Sun May 06, 2018 10:24 am
Wow.

Just wow.
Wow.

Just wow.
For what it is worth, my sense is that you (jamesh) get it.

But that other poster is completely clueless.

Anyway, I think this thread has run its course.
Other poster not actually clueless from my reading of the thread. However I agree this thread has run its course.
Principal Software Engineer at Raspberry Pi (Trading) Ltd.
Contrary to popular belief, humorous signatures are allowed. Here's an example...
“I think it’s wrong that only one company makes the game Monopoly.” – Steven Wright

Return to “Raspbian”