Xbox is testing free, ad-supported cloud gaming


For a very long time, if you wanted to try Linux on a semi-permanent basis, you needed to shrink your Windows partition, install a Linux distro of some variety, and just suffer through any of the numerous problems that can occur with dual booting.

For over a decade, Plex was the undisputed choice for anyone looking to self-host a media server. Unlike its alternatives, Plex was polished, feature-rich, and years ahead of the competition.

Bitcoin Magazine

Crypto Derivatives Exchange BitMEX To Shut Down in September
Crypto exchange BitMEX will close down in September, according to a Thursday announcement on the company’s website.
The exchange said that after “a strategic review of the business and the broader crypto industry, the board of HDR Global Trading Limited, owner and operator of BitMEX, has decided to close the exchange.”
BitMEX did not give further information on why the exchange was closing but told users to withdraw their funds “as soon as practical.”
“The BitMEX platform has always remained grounded to the true ethos of Bitcoin — neutrality, transparency, and decentralisation, which is evident through our peer-to-peer operations and a top priority focus on user fund safety,” the statement read.
“While this news is a difficult one to share, we are proud of everything that has been built at the company since its launch as a pioneer of crypto derivatives.”
BitMEX added that users will be able to access services as normal until September 23. After that date, the exchange will only hold client assets until they are withdrawn.
It continued that it had unstaked all staked BMEX Tokens on the platform, and they are now available in users’ accounts.
Run by eccentric crypto entrepreneur Arthur Hayes, BitMEX has had its fair share of run-ins with the law.
Regulators first stated that BitMEX had allowed U.S. clients to use its exchange without verifying their identities.
The company in 2021 paid $100 million in civil penalties after the U.S. Financial Crimes Enforcement Network alleged that the exchange’s senior leadership “altered U.S. customer information to hide the customer’s true location.”
BitMEX founders Hayes, Benjamin Delo, and Samuel Reed pled guilty in 2022 to violations of the Bank Secrecy Act for failing to operate an anti-money laundering program at the cryptocurrency exchange. Each founder then agreed to pay a $10 million fine to settle the charges.
Then, last year, BitMEX was hit with a further $100 million fine for its guilty plea for breach of the United States Bank Secrecy Act.
But following the election of crypto-friendly President Donald Trump, all three founders were pardoned in 2025.
This post Crypto Derivatives Exchange BitMEX To Shut Down in September first appeared on Bitcoin Magazine and is written by Mathew Di Salvo.
If you have ever worked with two or three monitors, you have probably run into the same problem. You arrange your workspace exactly the way you like it. Your editor sits on the main display, documentation is open on another monitor, and Slack, Discord, or a terminal stays visible on a third. Everything feels organized until you switch to another virtual desktop.


Running a forex brokerage means making hundreds of decisions every day.
→ Which marketing channel is bringing quality traders?
→ How many leads are converting?
→ Which clients need more attention?
→ Are sales teams following up at the right time?
The answer to these questions depends on one important factor: Accurate Reporting.
A data error in a report may seem like a small issue, but for a brokerage, it can affect revenue, customer relationships, compliance, and future growth.
For example, imagine your sales dashboard shows that a campaign generated 1,000 leads. But after checking manually, you find that 300 leads were duplicates or incomplete. Your team has already spent time and money following inaccurate information.
This is where Forex CRM integration becomes valuable. By connecting your CRM with other business systems, you can bring customer data into one place, reduce reporting mistakes, and get a clearer picture of your brokerage performance.
In this article, we will explore why inaccurate reporting creates challenges for forex brokers and how CRM integration helps build a stronger business operation.
Accurate reporting is the backbone of a successful forex brokerage. Business owners depend on reports to understand lead performance, track sales activities, monitor client behavior, and plan future growth.
But when reports are inaccurate, it creates confusion across the business. Teams may work with different information, managers may make decisions based on incorrect numbers, and opportunities may be missed.
Let’s look at the common reporting problems forex brokers face and how CRM integration provides practical solutions.
Many forex brokerages still depend on employees to update customer details, lead information, payment records, and sales activities manually.
While this process may work at a smaller scale, it becomes difficult to manage as the business grows. A simple mistake, such as entering the wrong client status or missing an update, can affect multiple reports.
A Forex CRM integration reduces dependency on manual updates by automatically collecting and organizing information from connected systems.
When client details, lead activities, and transaction information are updated automatically, reports become more accurate, and teams spend less time fixing data errors.
Forex brokers usually use multiple platforms to run their operations, including trading systems, payment gateways, marketing tools, and customer support software.
When these platforms work separately, information becomes scattered. The marketing team may have one set of lead numbers, while the sales team works with another. This makes it difficult to understand the actual business performance.
CRM integration connects different platforms and brings important information into one central location.
Instead of checking multiple systems, business owners and teams can access a complete view of customer data, sales activities, and business performance from a single platform.
The forex industry moves quickly. Business owners need updated information to understand customer activity, marketing results, and revenue performance.
When reports are delayed, decisions are often made using old information. This can result in missed opportunities and slower responses to business changes.
A connected CRM system provides faster access to updated business information.
With accurate and timely reports, brokers can quickly identify:
Forex brokers often receive leads from different sources, including websites, advertisements, referrals, and partner networks.
Without proper data management, the same trader may appear multiple times in the system, or important customer details may be missing.
This affects lead reports, sales tracking, and customer analysis.
CRM integration creates a single customer profile by combining information from different sources.
This helps brokers maintain cleaner records and gives teams a complete understanding of each trader’s journey, from registration to account activity.
Without connected reporting, business owners may struggle to answer important questions:
Without clear answers, improving performance becomes challenging.
A Forex CRM provides detailed reports on leads, sales activities, and customer interactions.
Managers can track performance more effectively and identify areas where their teams can improve.

Every forex brokerage has different requirements. A small broker and a large multi-region brokerage may need different solutions.
Before selecting a CRM integration approach, consider these factors:
1. Compatibility With Existing Platforms
Your CRM should connect smoothly with your current systems, including trading platforms, payment solutions, and marketing tools.
s well with your existing setup reduces operational challenges.
2. Data Security
Forex businesses handle sensitive customer information. Choose an integration approach that focuses on protecting client data and controlling access.
3. Reporting Features
A good Forex CRM Software should provide useful reports that support business decisions.
Look for features such as:
4. Scalability
Your brokerage may grow over time. The CRM system should support increasing numbers of clients, employees, and transactions.
Choosing a scalable solution prevents the need for frequent system changes in the future.
5. Ease of Use
A powerful system is only useful when teams can use it properly.
Choose a CRM integration that is simple for sales, support, and management teams to understand.
Accurate reporting plays a major role in the success of a forex brokerage. When reports contain incorrect information, business owners may lose valuable opportunities, make poor decisions, and struggle to deliver a good customer experience.
The solution is not simply collecting more data. It is about managing data correctly.
Forex CRM integration helps brokers connect their systems, reduce reporting errors, improve sales visibility, and understand their clients better.
For forex businesses looking to grow, having better information is a competitive advantage. With the right integration approach, brokers can make smarter decisions, improve operations, and build stronger relationships with traders.
Why Inaccurate Reporting Hurts Forex Brokerages and How CRM Integration Solves It was originally published in Coinmonks on Medium, where people are continuing the conversation by highlighting and responding to this story.
A critical vulnerability in the Linux kernel, identified as CVE-2026-64600 and referred to as RefluXFS. This vulnerability enables an unprivileged local user to gain root access on systems that utilize reflink-enabled XFS filesystems. The flaw resides in the XFS copy-on-write path and has reportedly existed since the release of Linux kernel version 4.1 in 2017. […]
The post Critical RefluXFS Linux Kernel Flaw Lets Local Attackers Gain Root Access appeared first on GBHackers Security | #1 Globally Trusted Cyber Security News Platform.


© Federal News Network
For years, Microsoft has leaned heavily into extensive backward compatibility across multiple generations of Xbox hardware as a major selling point for its consoles. Today, that effort expands past the console ecosystem, making select original Xbox titles officially playable (and purchasable) on Windows PCs for the first time.
The appropriately and bluntly named "Xbox Backward Compatibility on PC" program kicks off today with compatibility for BLiNX: The Time Sweeper, Conker: Live and Reloaded, Crimson Skies: High Road to Revenge, and Fuzion Frenzy. PC players can download each title for $10, but those with Xbox Game Pass subscriptions or existing digital licenses for these games on console will have instant access without an additional purchase (no such luck if you simply stick an original Xbox disc in your PC drive, alas).
Playing these older Xbox titles on PC enables some bonus graphical features like Vsync support, anisotropic filtering, enhanced anti-aliasing, and up to 4x resolution scaling of the original SD signal (to 2560x1920). Games are limited to their original frame rates and aspect ratios, though, which means a 30 fps 4:3 image in most cases. Microsoft says this first batch of games should be playable with 11-year-old GTX 950 graphics hardware, but recommends a 2017-era GTX 1070 Ti with 8GB of VRAM for best performance.


Apple is reportedly testing a 6.96-inch iPhone screen for its 2027 anniversary lineup, a change that could make the Pro Max feel nearly 7 inches.
The post Apple Tests Nearly 7-Inch Screen for Future iPhone Pro Max Model appeared first on TechRepublic.
Apple is reportedly testing a 6.96-inch iPhone screen for its 2027 anniversary lineup, a change that could make the Pro Max feel nearly 7 inches.
The post Apple Tests Nearly 7-Inch Screen for Future iPhone Pro Max Model appeared first on TechRepublic.

Car enthusiasts want to know how quickly they can make a quarter mile. Weightlifters are forever trying to add one more plate to the bar. Internet denizens have their own favorite number to brag about: the result from a speed test.
The ritual is familiar. Close a few browser tabs, click the big “Go” button, and watch the needle climb. Perhaps you pay for gigabit service and see 940 megabits per second, which produces a satisfied nod. Perhaps you see 299 megabits and begin obsessing over network hardware. But before you get too excited either way, try another test. There is a fair chance it will give you a different answer.
That does not necessarily mean one test is lying. “Internet speed” is not a single physical quantity waiting to be measured. A speed test measures the performance of a particular device, over a particular local connection, through a particular ISP route, to a particular server, at a particular time using a particular test method. Change any of those things and the answer can change too.

Speedtest by Ookla is probably the best-known test. It selects a nearby server, although you can choose another. It attempts to saturate the connection with multiple simultaneous transfers. That makes it good at answering the question most consumers are asking: approximately how much aggregate bandwidth can this Internet connection deliver?
Running several connections matters. A single TCP connection must gradually increase its sending rate while reacting to round-trip time, packet loss, receive-window limits, and congestion-control behavior. On a high-bandwidth or high-latency path, one connection may not fill the available pipe. Several parallel connections can ramp up independently and make it easier to reach the link’s aggregate capacity. That number is valid, but it represents something like a busy household, a large segmented download, or several applications operating at once. It does not necessarily predict the speed of one file transfer from one distant server.
Google’s built-in search speed test (search “speed test”) uses Measurement Lab’s Network Diagnostic Tool, or NDT. M-Lab describes NDT as a single-stream measurement of bulk-transport capacity. That makes it an interesting counterpoint to Ookla. A single flow may expose latency, loss, or TCP-window limitations that a multi-stream test can partially conceal. You can also use M-Lab’s own speed test directly.
While you may get similar numbers between the two approaches, you also may not get similar numbers, especially on high-latency connections where Ookla’s multiple streams will help hide latency.
Netflix’s Fast.com is deliberately simple. Open the page, and it immediately begins transferring data from Netflix infrastructure. By default it emphasizes download performance, since its original purpose was to answer a practical question: can this connection deliver Netflix video properly? Selecting “Show more info” adds upload speed and both unloaded and loaded latency.

The use of Netflix servers is significant. Fast.com measures the route between you and Netflix’s content-delivery network, while Ookla may test against a server operated by your ISP only a few network hops away. A superb Ookla result and a poor Fast.com result do not prove deliberate throttling, but they do tell you that the destinations — or the routes to them — are behaving differently.
Cloudflare offers two related tests. Its Radar Network Quality Test provides a quick summary, while speed.cloudflare.com gives an extremely detailed breakdown. The latter reports download and upload throughput, idle and loaded latency, jitter, packet loss, server location, and application-oriented quality estimates.

Loaded latency is especially useful. An otherwise fast connection can become miserable when a large upload or download fills an oversized queue in the modem or router. Your idle ping might be 12 milliseconds, but under load it may jump to several hundred milliseconds. That is the classic symptom usually called bufferbloat.
If you want more options, there is testmy.net, which allows you to test upload and download speeds separately, and speedof.me, which keeps a history for you, among others. It isn’t always obvious which ones are measuring a single connection vs multiple ones, so you may have to dig through whatever documentation you can find.
A browser speed test cannot automatically tell you what’s hurting your speed. A laptop connected through marginal WiFi may report 180 megabits per second even though the router has a flawless gigabit Internet connection.
In fact, once incoming Internet service reaches several hundred megabits per second, WiFi is frequently the limiting factor. The link rate displayed by the operating system is not the same thing as usable throughput. Wireless protocols have framing overhead, acknowledgments, contention, retransmissions, and half-duplex operation. The advertised 866, 1200, or 2400 megabit link rate is therefore not a promise that application data will move at that rate.
The numbers printed on WiFi boxes add another layer of optimism. A router sold as “AC1800,” for example, does not provide an 1800-megabit connection to one device. The figure is normally the sum of the maximum advertised PHY rates on separate radios — perhaps 1300 Mb/s on 5 GHz plus 450 Mb/s on 2.4 GHz — with some rounding for marketing. A conventional WiFi client connects to one band at a time, so it cannot combine those rates. The total is better understood as the router’s theoretical aggregate capacity while serving multiple devices across both bands. Even then, protocol overhead, contention, signal quality, and client limitations make actual data throughput considerably lower. Newer WiFi 7 equipment can sometimes combine links using Multi-Link Operation, but that exception does not make the old ACxxxx arithmetic any less misleading.
WiFi also uses shared airtime. Devices on the same channel — including neighboring access points that can hear one another — must contend for opportunities to transmit. A slow or distant client takes longer to send a given amount of data and can consume disproportionate airtime while doing so. Modern access points may provide airtime fairness and other mitigations. One old device does not invariably drag every client down to its rate, but it can still reduce the capacity available to the rest of the network. Interference has a similar effect. A weak signal, a crowded channel, microwave noise, or an overlapping neighboring network causes frames to be delayed or retransmitted. Those retries consume airtime without delivering additional data.
Repeaters and wireless mesh backhaul add another complication. A simple same-channel repeater must receive each packet and then transmit it again over the same shared medium. In the worst case, each repeated hop can roughly halve the available throughput. Modern tri-band mesh systems can avoid much of that penalty by using a dedicated backhaul radio, and Ethernet backhaul avoids it almost entirely.
This means it is entirely reasonable to buy gigabit Internet service and obtain only 300 or 500 megabits per second from a WiFi laptop. Whether that represents a problem depends on the client, radio band, channel width, signal level, backhaul, and local RF environment.
For a meaningful ISP test, begin with a computer connected directly to the router by Ethernet. Stop large transfers and temporarily disable any VPN. Record the chosen server, latency, upload speed, and download speed rather than preserving only the most flattering number. Then run the same tests over WiFi. The difference is an approximate measurement of what the wireless portion of the network is costing you.

Better still, remove the ISP from the test completely. OpenSpeedTest is a self-hostable, browser-based test. Run its server on a wired computer, NAS, or container, then visit it from laptops, phones, and tablets around the house. Because the traffic remains on your LAN, a slow result points toward WiFi, switching, cabling, or the client rather than the Internet connection.
It is possible to run this on the uhttpd server used with OpenWRT, although you’ll need to coax it to measure upload speeds since the server can’t handle the default method. The trick is to create a CGI script that accepts a large amount of data successfully and then configure uhttpd to run that.
A browser-based local test is convenient, but for serious diagnosis it is hard to beat iperf3, the client/server tool we recently used while testing mesh routers. On one machine (say, 192.168.1.100), start the server:
iperf3 -s
From another machine, run:
iperf3 -c 192.168.1.100
By default, iperf3 uses one TCP connection. Add -P 4 to try four parallel streams, or -R to reverse the direction so that the server sends and the client receives. Those variations can tell you something. If four streams are much faster than one, the network may have enough aggregate capacity but a single TCP flow is being limited by latency, loss, window growth, CPU performance, or offload behavior. If the reverse test is much faster, examine the weaker machine’s transmit path, drivers, antennas, or CPU.
iperf3 can also generate UDP traffic at a specified rate and report packet loss and jitter. That is often more informative for evaluating a wireless link than merely chasing the largest TCP number.
Linux offers an impressive array of network tuning knobs, which naturally tempts us to turn them. But first, you need to understand what needs tweaking.
Check the negotiated Ethernet rate and interface counters:
ethtool eth0 ip -s link show eth0
A gigabit adapter that has negotiated 100 megabits per second usually has a cabling, connector, or switch-port problem. Increasing TCP buffers will not repair it. Rising interface errors and drops point toward a physical, driver, or congestion problem. TCP retransmits (view with ss -ti) may indicate loss elsewhere on the path.
You can inspect the active queue discipline with:
tc qdisc show
Linux supports queue disciplines such as fq_codel, which combines per-flow queueing with active queue management. It attempts to prevent one large transfer from building an enormous queue and delaying unrelated interactive packets. The kernel documentation specifically lists fq_codel as a sensible queue discipline that works without extensive configuration.
It can be selected as the default for newly created interfaces with:
sudo sysctl -w net.core.default_qdisc=fq_codel
That may improve queueing on traffic leaving the Linux machine. It does not, however, fix a large queue in the cable modem or Internet router. Queue management must be applied at the bottleneck. If the ISP link is limited to 20 megabits upstream, controlling a queue on a gigabit Ethernet interface after it has already handed packets to the router is too late.
For a home connection, the most effective bufferbloat treatment is usually Smart Queue Management on the router. OpenWrt’s SQM system supports both fq_codel and CAKE. CAKE generally provides better performance. However, fq_codel requires less CPU overhead.
High-latency paths introduce a different problem. TCP must keep enough data in flight to fill the bandwidth-delay product. Modern Linux generally autotunes TCP buffers, so the old advice to assign enormous fixed values to tcp_rmem and tcp_wmem is less universally useful than it once was. Before changing them, use ss -ti during a transfer and look for retransmissions, round-trip time, congestion-window size, and whether the receiver window is actually limiting the connection.
Linux also supports selectable TCP congestion-control algorithms:
sysctl net.ipv4.tcp_available_congestion_control sysctl net.ipv4.tcp_congestion_control
Algorithms such as BBR can improve throughput and queue behavior on some long-distance or lossy paths. But changing the algorithm affects connections sent by that Linux machine; it does not control the remote speed-test server, repair poor WiFi, or eliminate a queue in the router. Congestion-control tuning is therefore a useful experiment for a server, VPN endpoint, or long-haul transfer machine — not a universal solution to slow networking.
Finally, inspect hardware offload features when a Linux system cannot keep up with a fast LAN:
ethtool -k eth0
Advanced network tuning is a bit beyond the scope of this post, but there are plenty of roadmaps down this rabbit hole.
The lesson here is that there is no universally correct speed-test result. Ookla tests how effectively multiple transfers can fill a route to one of its servers. M-Lab examines a single bulk flow. Fast.com tests the path to Netflix. Cloudflare pays unusual attention to latency under load and overall connection quality. OpenSpeedTest and iperf3 can determine whether the Internet connection is even the problem.
Run enough tests, and you will eventually obtain a number worth bragging about. Run the right tests, though, and you may find ways to truly increase real-world performance. If you want to chase that extra 1 kbit per second speed, be our guest — we know how it is. But the truth is that if the Internet is doing what you want it to do, then it is fast enough.
Read more of this story at Slashdot.

Nearly 20 years ago (!), in 2007, I published my first and only book: Microsoft 2.0. It focused on changes I expected at the company in the “Post-Gates” era. What would remain the same and what likely would be different once co-founder and CEO Bill Gates had left the building?
CEO Satya Nadella has not exited the company (yet). But there’s no question that Microsoft and its mission have morphed considerably in the past year or two. I’m not quite ready to christen this the Microsoft 3.0 era, even though Nadella handed the reins of Microsoft’s dominant commercial business to Judson Althoff nearly a year ago.
That decision resulted in Nadella moving into more of a “founder mode” role, allowing him to focus less on the day-to-day work of running the business. (Microsoft historians may recall that Gates made a somewhat similar move back in 2000 when he became Microsoft’s chief software architect.)
While it might not yet be time for Microsoft 3.0, we arguably could be in the “Microsoft 2.5” era. Windows and Office are still around and still play a big role. Microsoft still builds and sells developer tools and databases. But there’s no question that the cloud and all things AI are at the top of the pecking order now.
I’m embarking on a series here at GeekWire that will focus on what matters to Microsoft and, by extension, to its customers, partners, investors, and employees these days. Who are some of the people shaping and leading the company? What are their opportunities and challenges right now?
Over the next few weeks, I will be profiling various Microsoft execs working on plans for Microsoft’s ongoing evolution. Some are company veterans; some are newcomers. I’ll be talking with top execs from Microsoft’s Security, Copilot, Windows + Devices, Xbox, GitHub, and more.
I’m interested in their strategies for Microsoft’s key products and technologies and how they plan to try to turn Microsoft’s ambitious vision into reality. What are their teams building? What do they see as their biggest challenges and opportunities? And where do they see the technologies in their respective areas heading?
I feel like many of us who’ve been keeping track of the biggest tech companies (myself included) have fallen into the trap of blaming or attributing everything a company does to AI. Layoffs? AI is the culprit. Price increases? It’s all thanks to AI. Changing sales strategies? Chalk it up to AI …
But upon further reflection, I believe Microsoft’s strategy is more nuanced than “AI or bust.” There’s no question that Microsoft’s AI ambitions are shaping its goals and tactics. But Microsoft, as a heavily enterprise-focused entity, can’t simply stop supporting products that aren’t built from the ground up with AI (as much as it might like to do so). Nor can it just leave behind customers who aren’t 100% onboard with its AI moves.
Couple those enterprise hurdles with some not-so-popular consumer decisions, like axing 3,200 people in the gaming unit, and Microsoft’s approach to turning the ship looks a lot trickier.
Read the first installment in the series, profiling new Microsoft Security EVP Hayete Gallot, who’s revamping the group’s leadership as the company pushes into the agentic security.



In a recent post, I mentioned that I wanted to build some tools for a stripped-down Linux running on a 3D printer with a MIPS CPU. I had two options: build a toolchain to cross-compile, or use Zig, which, in theory, has built-in toolchains for MIPS. I had to jump through hoops to get Zig to work, and I did mention Crosstool-Ng, so you might wonder why I didn’t start there. Turns out, it had its own set of hoops to work through.
Crosstool-NG is a build system for making cross-compilation toolchains: compilers, assemblers, linkers, C libraries, kernel headers, and all the other pieces needed to build software on one machine that will run on a different kind of machine. Instead of manually matching a particular GCC version with the right binutils, glibc, or musl release, Linux headers, patches, and configuration options, you select the target architecture and let Crosstool-NG download, patch, configure, and build the stack. The result is a self-contained toolchain with commands such as mipsel-linux-musl-gcc or arm-none-eabi-gcc, ready to produce binaries for the target system.

The four-part name is in a particular format that is often used in the cross compiling world. For example, consider arm-none-eabi-gcc. The tool here is gcc and, as you might expect, there will also be arm-none-eabi-as and arm-none-eabi-ld, among other things. The first part, arm in this case, will be the target architecture.
The second part of the name can mean a few different things. In theory, it is a vendor name but it is sometimes “none” which often means “generic” or, in the case of a linux target, “linux,” which isn’t technically a vendor.
The third part is the calling convention and, often, some idea of the library. For example, arm-linux-gnueabihf-gcc would mean the GNU library using the ARM EABI and hardware floating point. These are sometimes called “target triples” because, historically, it was CPU-VENDOR-OS, but now there are usually four or even five parts if the calling convention includes the OS, like linux-musl, for example.
That sounds simple, but cross-toolchains are unusually sensitive to version combinations and ABI details. Endianness, floating-point conventions, instruction-set variants, threading support, and C library choices all have to agree. So saying “Arm” or “MIPS” doesn’t mean much. You need to account for all the possible variations in the CPU and the libraries. Crosstool-NG does not eliminate those decisions, but it turns them into a reproducible configuration rather than a long sequence of hand-built components. I had two problems that I eventually resolved.
One nice thing about Crosstool-Ng is that it pulls the right versions of everything for you. The problem is, when you install it from your system repositories, you are probably getting a crazy old version of the tool itself. I couldn’t find the right entries in the configuration when I did that, so I eventually uninstalled and picked up the latest version right from the source.
If that was the only problem, I would have been lucky.
The CPU on the printer is an odd bird. As I noted last time, the executables use the r2 instruction set but also use the nan2008 convention which is usually found in r6. While Crosstool-Ng is good at letting you specify exactly what you want, it isn’t always clear on how you specify every detail.
To be fair, just like with Zig, some of that may be on me. I don’t use Crosstool-Ng or Zig every day, so maybe I was making either or both of them too hard. The bad news: It took me three or four attempts to get the right toolchain. The good news: It was a lot easier than manually downloading a bunch of stuff, trying to fix it up, building it, and still having to do it three or four times.

Sort of like buysbox or building a custom kernel, the configuration for Crosstool-Ng uses the command: ct-ng menuconfig. This gives you a menu where you can set options about what you want and where you want it stored.
The problem is that the nan2008 setting I needed isn’t part of a standard mips32r2 setup. I suspect that if I had needed mips32r6, everything would have just worked. But, of course, I’m not that lucky.
In the target settings, I needed to match all the specifications, of course, but I also needed to add -mnan=2008 to both the CFLAGS and LDFLAGS as you can see in the figure.
So what’s so hard about that? Just those changes won’t produce a working toolchain for my printer. The C compiler also needed --with-nan2008 (in the C Compiler options screen under extra target CFLAGS) and the same option needed to be placed in the C Library screen, too.
Of course, it is like a word search puzzle. Once you see the answers, they look obvious. But when you are searching through pages of options, it is easy to miss one. It isn’t like there is a checkbox for “Use nan2008” that does it all for you because using nan2008 with mips32r2 is “strange.”
Once everything was set correctly, I was able to produce a toolchain (ct-ng build) that could compile busybox and even a small text editor. Everything ran fine on the printer.
To build busybox, I used:
make V=1 CC="mipsel-unknown-linux-musl-gcc -march=mips32r2 -msoft-float -static -Os" STRIP='mipsel-unknown-linux-musl-strip' -j6
Unlike Zig, no patching needed. The Zig version was about 9 kB larger than this version, so not much different there. Both were just over a megabyte total. I could probably have used hardware floating point to get a smaller executable, but given that I don’t think any of this is using much floating point at all, it didn’t seem to matter very much.
I had also threatened to compile a text editor. Turns out most have dependencies on things like ncurses, which are a pain to bundle. So I grabbed a copy of the tutorial editor kilo and extended it to look a little like emacs. Works great. Great place to start if you need a static editor that doesn’t take much space.
If the CPU on the printer had been more conventional, I think either approach would have worked fine. I prefer the Crosstool solution in this case, because I’m not lying by patching the ELF header. In this case, I don’t think that lie hurts anything, but a program that did a lot of floating-point math might not work correctly, whereas I think the one produced by Crosstool would be fine even for a floating-point program.
On the other hand, like most Unix and Linux things, there are always more ways to solve any problem. If your problem is wedging executables on an alien Linux box, there are two perfectly fine ways to solve it.
Did you know there are different Linux terminals, some with unique and special features that can genuinely improve your day-to-day experience? For the average user, the choice doesn't matter much, but if you're planning to get serious about the terminal—using terminal apps, Vim, or Emacs—the terminal you choose becomes almost as important as the Linux distribution you run. With that in mind, here's why I settled on my current terminal, along with how the other popular options compare to my daily driver.
