pb4ugoout / Jamboard

Repo detailing the hardware breakdown down of a Google Jamboard in an attempt to assist in getting a build of Lineage OS created for it.
2 stars 0 forks source link

instructions about how to run L4T on the Jamboard carrier board #1

Open bbf opened 4 months ago

bbf commented 4 months ago

Hello,

I saw your post on the Android forums that you managed to run L4T on the Jamboard, and saw the specific version you used on one of the markdowns here. Thank you for sharing that. Would you be willing to document the steps you took to flash L4T into the Jamboard?

Thanks

pb4ugoout commented 4 months ago

I can do my best. I sort of abandoned the project. I don’t know enough coding or enough about Android to make my own build of LineageOS for the Jamboard hardware.

It’s a fairly straightforward process but you will need a spare Jetson TX1 or TX2 module as the one inside the Jamboard is fused and without keys from Google there’s no way to load any other software on to it.

You can follow along with my photos and tear down to remove the back panel. That’s the hardest part of the whole thing. The rear panel is actually beauty panel. Pop that off first. Then unscrew the actual back cover. The clips are tough and the plastic is huge. Be prepared for LOTS of screws as well. Once inside you can remove the 4 screws from the heat sink/passive cooler and then the 3 screw securing the module to the carrier. Just replace the module with your own and flash L4T using the rear usb port on the Jamboard. It’s the micro by the power plug in the middle of the back. One of the volume buttons is the recover button. Hold that down and press and release power. That will put your module into APX mode so that you can flash L4T.

If my documentation is unclear please let me know. I never meant to give the assumption that you could flash the factory module without opening up the unit.

Is that helpful?

bbf commented 4 months ago

I actually opened up my Jamboard yesterday, and took several pictures of the internals, before giving up on the hardware hack approach, and trying again to take a software based approach. I'm a software engineer, and even have worked for Google, but I don't have any insider info on the Jamboard. I decided the software approach because I thought that by doing a "fastboot oem unlock" (which did work, its not locked) I could perhaps provide a L4T kernel and trampoline out of the Android (perhaps Things) shell they built. I'm by no means an expert on Android, specially their boot process, but I have done my fair share of flashing custom roms and building lean distros for embedded hardware a long time in the past.

Thank you for the info on how you achieved L4T with a different Jetson module. I would be happy enough if I could get Linux running on the Jamboard if I can get most of the hardware working. Even their camera module seems to be custom (Chicony maybe custom built it for them), and there's some issues when used as a standard UVC device.

If you are interested in collaborating, I'm willing to help on the software side on what I can. I noticed someone else trying something similar: https://gitlab.incom.co/CM-Shield/android_device_nvidia_foster/-/commit/49814dbbf198e91863a88c301ca589dc3140fa97#

I can politely ask some ex-coworkers at Google for some information (especially after the October date), although I think the original team has already been disbanded, so bit rot will take over soon.

bbf commented 4 months ago

I think @webgeek1234 is the owner of the gitlab above, and he pushed that change a couple of days ago. It seems he actively participates in many parts of LineageOS. Perhaps there's some hope on making this work... I'm going to setup a local build env for LineageOS and see how far I can get.

webgeek1234 commented 4 months ago

I think @webgeek1234 is the owner of the gitlab above

Yeah, that's me. I tried a few things at the request of the owner of this repo several months ago, but unfortunately doing so without hands on the hardware makes things really difficult and it didn't really go anywhere. Maybe come October if a bunch of them end up on second hand markets for cheap, I'll be able to get ahold of a full unit. Though not sure I'll have a place to put one at this point...

The main issue with booting anything based on the shield devices is that the jamboard is booting a 4.4 kernel and the kernel device tree isn't fully compatible with the 4.9 kernel currently in use by foster. Combined with google never releasing kernel source for the jamboard. If someone was able to make that latter happen, I could probably make something happen. But I either need a proper source release or a dump of the DTB partition. Without either, stuff is difficult.

bbf commented 4 months ago

Disclaimer: I'm not a lawyer so I can't make any assertions, and neither does my opinion here reflect the opinions of my current or previous employers. =)

Although if Google seems out of compliance by not sharing the source tree used to produce and distribute the binary used in the Jamboard, I might know a contact that perhaps will be able to help. I have to check if they are still at Google, since I left 2 and 1/2 years ago. Let me reach out to see if I can get the ball rolling. I'll update here as soon as I have any news.

bbf commented 4 months ago

Well, Chris DiBona who used to run the OSPO inside of Google left in 2023, so I don't have a direct contact right now. Let me dig further and I'll see if I can find an alternative.

albeauregard commented 3 months ago

Hey guys. I' seem to be 1-6months late joining the party here. I suspect traffic in this area is going to pick up soon, as the October deadline approaches. I just picked up my first jamboard last week, and I'm getting to the point of poking at fastboot, and adb, and discovery that there's a Jetson TX1 module inside, and the jetson bootloader appear to be available. I'm picking up two more boards next week, to start disecting them. If anybody with the skills to work on this project is local to the Raleigh, NC, USA area, I've got a lead with about 20 of these things left, and threatening to send them to recycling as soon as next week.

makinbacon21 commented 3 months ago

I'm in NJ/PA area starting next week, which is a bit far but maybe we could work smth out? I'd absolutely love a unit. If shipping is doable we could talk that, we could meet in the middle somewhere, or I could deputize my friend at UNC if it could be partly disassembled to fit in his car. makinbacon21 on discord btw if you'd like to talk more!


From: albeauregard @.> Sent: Sunday, August 11, 2024 4:00 PM To: pb4ugoout/Jamboard @.> Cc: Subscribed @.***> Subject: Re: [pb4ugoout/Jamboard] instructions about how to run L4T on the Jamboard carrier board (Issue #1)

Hey guys. I' seem to be 1-6months late joining the party here. I suspect traffic in this area is going to pick up soon, as the October deadline approaches. I just picked up my first jamboard last week, and I'm getting to the point of poking at fastboot, and adb, and discovery that there's a Jetson TX1 module inside, and the jetson bootloader appear to be available. I'm picking up two more boards next week, to start disecting them. If anybody with the skills to work on this project is local to the Raleigh, NC, USA area, I've got a lead with about 20 of these things left, and threatening to send them to recycling as soon as next week.

— Reply to this email directly, view it on GitHubhttps://github.com/pb4ugoout/Jamboard/issues/1#issuecomment-2282888015, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEXR77WM3U7RSZ5JJ2H5QADZQ7GGPAVCNFSM6AAAAABKOTYH76VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOBSHA4DQMBRGU. You are receiving this because you are subscribed to this thread.Message ID: @.***>

albeauregard commented 3 months ago

There is definitely no reasonable way to ship these things. Just the panel by itself is 94 lbs. The rolling stand is 65 lbs. My source doesn't have any more with stands, but has the official wall-mounts, which is also 15 lbs by itself.

webgeek1234 commented 3 months ago

I'd like to get a unit in hand to do some tinkering and support. But I'm even further away, so shipping would be the only way to get one here. Maybe if one of the units doesn't get claimed, the carrier board and module could be salvaged first and shipped out. That'd get me 3/4s of the way there.

makinbacon21 commented 3 months ago

If I were to drive down at some point in the next...idk month or two...would I be able to take one? Wall mount one is fine if it comes with wall mount.


From: albeauregard @.> Sent: Sunday, August 11, 2024 4:13:23 PM To: pb4ugoout/Jamboard @.> Cc: Thomas Makin @.>; Comment @.> Subject: Re: [pb4ugoout/Jamboard] instructions about how to run L4T on the Jamboard carrier board (Issue #1)

There is definitely no reasonable way to ship these things. Just the panel by itself is 94 lbs. The rolling stand is 65 lbs. My source doesn't have any more with stands, but has the official wall-mounts, which is also 15 lbs by itself.

— Reply to this email directly, view it on GitHubhttps://github.com/pb4ugoout/Jamboard/issues/1#issuecomment-2282891386, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEXR77UBSPW46C2BCYLYISTZQ7HXHAVCNFSM6AAAAABKOTYH76VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOBSHA4TCMZYGY. You are receiving this because you commented.Message ID: @.***>

albeauregard commented 3 months ago

Just to be clear, I’m not the actual source for these things, and even though he’s threatening to recycle them, he’s not giving them away for free (yet?). I don’t mind making a small donation to a school if it might help this project along, but I can’t buy or store all of them. :)

makinbacon21 commented 3 months ago

I would happily chat with contact directly if you'd like, but I'd want 1 or 2, would be used for dev and then I'd leave them with my school computer club assuming we get them up if that makes any difference. The idea would be to be able to distribute a ROM for anyone with one of these to be able to resurrect it into a standard Android device, or at the very least a procedure to swap to a standard tx1 and do the same. Regarding price, would be happy to pay some amount depending on what the going rate ends up at. Doubt you can get much for a brick anyway :)


From: albeauregard @.> Sent: Sunday, August 11, 2024 4:43:14 PM To: pb4ugoout/Jamboard @.> Cc: Thomas Makin @.>; Comment @.> Subject: Re: [pb4ugoout/Jamboard] instructions about how to run L4T on the Jamboard carrier board (Issue #1)

Just to be clear, I’m not the actual source for these things, and even though he’s threatening to recycle them, he’s not giving them away for free (yet?). I don’t mind making a small donation to a school if it might help this project along, but I can’t buy or store all of them. :)

— Reply to this email directly, view it on GitHubhttps://github.com/pb4ugoout/Jamboard/issues/1#issuecomment-2282898947, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEXR77SRABK7PXT6RQOTPUDZQ7LHFAVCNFSM6AAAAABKOTYH76VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDEOBSHA4TQOJUG4. You are receiving this because you commented.Message ID: @.***>

bbf commented 1 week ago

Just an update on my attempts: Every contact attempt to Google I tried fell onto deaf ears. I didn't get a single response, and I fear this would only be taken seriously if some legal action was made to justify them using resources to even address this. I'm not a lawyer, but I believe that distributing a binary of the kernel without providing the sources might be a violation of the GPL. While I would love to have access to that and play around with AOSP / LineageOS on this device, I don't have the time and motivation to deal with any legal issues with Google. If anyone here decides to follow that with the help of ESF of FSF, keep us updated :)

I might take the approach of buying a Jetson module that hasn't had it's fuses burned and installing L4T instead. @pb4ugoout do you have a sense of how much of the carrier board was supported by the current L4T kernel? How much of the integrated hardware was supported? Based on how much works through the mini-USB connector, I imagine that these devices would work:

But I imagine that these would not work at all:

Can anyone who has tried the Jetson module replacement comment on their experience around this please?

makinbacon21 commented 1 week ago

You are correct in your observation of a GPL violation. Despite this, we have dumped the DTB and booted lineage, and are working on a better port with more features. A full featured product would require some of the illegally closed source drivers in the kernel. We have made many attempts to contact Google and others, and soon will be reaching out to Torvalds and GNU for assistance via the standard reporting emails. Google has violated before and this is just yet another instance.


From: Bruno Figueiredo @.> Sent: Friday, November 8, 2024 3:59:46 PM To: pb4ugoout/Jamboard @.> Cc: Thomas Makin @.>; Comment @.> Subject: Re: [pb4ugoout/Jamboard] instructions about how to run L4T on the Jamboard carrier board (Issue #1)

Just an update on my attempts: Every contact attempt to Google I tried fell onto deaf ears. I didn't get a single response, and I fear this would only be taken seriously if some legal action was made to justify them using resources to even address this. I'm not a lawyer, but I believe that distributing a binary of the kernel without providing the sources might be a violation of the GPL. While I would love to have access to that and play around with AOSP / LineageOS on this device, I don't have the time and motivation to deal with any legal issues with Google. If anyone here decides to follow that with the help of ESF of FSF, keep us updated :)

I might take the approach of buying a Jetson module that hasn't had it's fuses burned and installing L4T instead. @pb4ugoouthttps://github.com/pb4ugoout do you have a sense of how much of the carrier board was supported by the current L4T kernel? How much of the integrated hardware was supported? Based on how much works through the mini-USB connector, I imagine that these devices would work:

But I imagine that these would not work at all:

Can anyone who has tried the Jetson module replacement comment on their experience around this please?

— Reply to this email directly, view it on GitHubhttps://github.com/pb4ugoout/Jamboard/issues/1#issuecomment-2465740113, or unsubscribehttps://github.com/notifications/unsubscribe-auth/AEXR77UMNEGXHLCEWIEQFJ3Z7UQ4FAVCNFSM6AAAAABKOTYH76VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDINRVG42DAMJRGM. You are receiving this because you commented.Message ID: @.***>

pb4ugoout commented 1 week ago

@bbf I’ve been working with makinbacon, webgeek, and a few others to get Lineage booting. I’m more of a hardware guy myself so they are doing all of heavy lifting. Mostly I’m identifying hardware and continuing to figure out the what and why of this thing. That said, we’ve made excellent progress and have Lineage booting as makinbacon said above.

I’m unsure what all was working in L4T. I haven’t had that running in quite some time. I do remember the touch screen didn’t work but we have a shell script that I believe would make it work. I may test that again in he future on one of my extra modules. At the time I was fiddling with L4T, my goal was Lineage so I didn’t spend my time testing the hardware. Unfortunately I don’t know too much about what all was or wasn’t working as intended.

We only got the touch screen working earlier this week. The device is recognized but needs work in the user space to get it function properly. It’s a USB device that also has gpio connections to the jetson that are used in the power sequence as well as for selecting the boot mode. Currently it requires multiple inputs to scroll/swipe and single taps appear to function like a latch, continuing to fire the input. A double tap does exactly that and acts like a quick toggle. Quirks that I’m confident these guys can solve.

As for the compatibility of the other hardware you mentioned:

1.) Audio and video are fully standalone and just work. The Jetson module is sending DisplayPort over hdmi to an output on the carrier. From there it goes down under the soldered heatsink. There’s a milestone video processor there. That chip is handling the three 4 inputs (two HDMI, one DP, and one type-c) and the eDP output to the LCd panel. Audio is stripped from the outbound TDMS lines and passes through each input on its way to an ST audio chip. We haven’t had to do anything.

2.) Along with that brightness and volume control are fully functional. The input button still works as intended to cycle through them, however, volume is no longer functional and the buttons control only the screen brightness when the external inputs are used. I confirmed this with Google support before the Jamboard went EoL. There is no onboard audio control for the external inputs. They intended them to be used with computers which would have their own volume control. With enough effort I think it could be made to control volume but I think it would require changing the configuration of the audio processor ic and the video chip since the vol buttons change to brightness buttons. Currently we aren’t able to confirm if we even have protocol (i2c, uart, etc…) access to them. This isn’t something we’ve discussed working on and I honestly don’t think it’s necessary or even possible at all.

3.) We have video from the camera. Unsure about the microphone, I can test that tomorrow. The camera is odd in that it’s not recognized by any other computer I’ve plugged it into. But it does work in Lineage.

3.) The nfc reader is an I2C device and the driver for it is easily obtained. It’s an NXP PN544. Assuming nothing comes up, the plan is to have it functional in the release build.

Lastly, I have reached out to a few of my contacts to see if we can get anywhere with Google. They are indeed in violation of the GPL but getting in touch with anyone relevant is incredibly difficult. It’s sort of a case of who you know. Within the group of us working on this, we all have at least one Jamboard on hand. However, I am the only one of us that purchased Jamboards outright and had them licensed and active in a Google Enterprise domain. As such, I have the most legal claim to any source code requests. I’m hesitant to pursue the legal route as that generally results in an immediate halt to all communication. It’s simply easier if we can get someone to agree and give us what we’re asking for. However, once I have exhausted my options, with or without the source code in hand, I do plan to put Google on notice as makinbacon said. I’ll reach out to Linus’ legal team, the GNU project team, and possible Google’s legal department as well. I have written documentation of Google support agreeing that my request is valid but then also refusing to assist me in obtaining what I’m asking for. It’s asinine on an embarrassing scale.

Anyway, I think that’s it for my novel there. Feel free to let us know if you need help or have more questions. Thanks for chiming in!

bbf commented 4 days ago

Thank you for everyone's dedicated effort on this :) I'm happy that you folks made so much progress. I will try again to reach out to a friend inside of Google to see if he can somehow internally move the needle on this, since the contacts I found where dead-ends, although I doubt we will see any progress on this. I heard from an friend ex-Googler that found a situation similar to this, while still working internally, that they usually only take action when there's legal reasons to do so, if they haven't done already out of good will.

For example, I was part of Stadia, and I was glad that at the end we at least provided an escape hatch so that the controllers could be used as regular game controllers. I'm annoyed that not all teams had the same mindset, or that they were disbanded before they could reach that outcome. Although if you consider Jamboards, the PR hit versus Stadia PR hit is quite different.

BTW, are there any nightly builds available somewhere so I can test the Jamboard Lineage OS build? Does the foster flavor already contain the current dev efforts? Would something like this work: https://download.lineageos.org/devices/foster/builds lineage-21.0-20241111-nightly-foster-signed.zip

Is there any discussion forum outside of here I could join to provide feedback or help in any way? Thanks again for all the effort :)