You can't directly. What you do instead is switch them between input and output modes, and use pull-up (or pull-down, I always forget which) resistors as needed. The in-built ones may be sufficient if you enable them, depends on what your external hardware looks like.
Not a flaw of Linux or the chip, it's just how the hardware works to accommodate push-pull as well. Many embedded chips work this way.
Other parts can do true open-drain, but nothing in the Beagle family that I recall. The above is usually close enough, especially since the GPIO driver and hardware can switch between input and output modes in a single instruction cycle, i.e. atomically, and the driven state is preserved as well.
b.g.